@denop
Изучаю Yii2 / Vue.js

Где хранить access token для API?

Приветствую!
Реализовал API для подтягивания (предыдущих)данных формы при входе на страницу.
Но столкнулся с несколькими моментами:
1. В Headers не отображается Authorization : Bearer (возможно не там смотрю. и должен ли быть?)
2. Где лучше хранить access token для Vue.js? (сетил в Cookies, но не выходит оттуда их достать при httpOnly)

"Если куки имеет настройку httpOnly, то document.cookie не видит его, поэтому такое куки защищено."

Посоветуйте как быть?
Заранее благодарю!
  • Вопрос задан
  • 1441 просмотр
Пригласить эксперта
Ответы на вопрос 2
vfreelancer
@vfreelancer
php
с просторов интернета:
// Add a request interceptor
axios.interceptors.request.use(function (config) {
    // assume your access token is stored in local storage 
    // (it should really be somewhere more secure but I digress for simplicity)
    let token = localStorage.getItem('access_token')
    if (token) {
       config.headers['Authorization'] = `Bearer ${token}`
    }
    return config;
  }, function (error) {
    // Do something with request error
    return Promise.reject(error);
  });


и еще:
To give a better answer to this thread, I did the following:

In my layouts app file I added:

<script>
    window.App = {!! json_encode([
        'apiToken' => Auth::user()->api_token,
    ]) !!};
</script>
    

and in my bootstrap.js I added:

axios.defaults.headers.common = {
  'X-Requested-With': 'XMLHttpRequest',
  'Authorization': 'Bearer ' + App.apiToken,
};

With this I always send the api_token with the logged in user when ever I make a request with Axios. Probably not the best way to go about it, and one should probably use Passport for this.
Ответ написан
Комментировать
IgorPI
@IgorPI
localStorage
Cookie
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы