Хранить токен доступа Laravel Passport в файле cookie

Безопасно ли хранить токен доступа в файле cookie?

Я проверил, и даже если у вас есть токен доступа, если вы не вошли в систему должным образом, вы получите 401.

Маркер доступа меняется (я меняю его) каждый раз, когда пользователь входит в систему.

Файл cookie уничтожается при выходе из системы или по тайм-ауту (в зависимости от параметра «запомнить»).

Должен ли я в любом случае хранить его где-то еще? Где о?


person Inigo EC    schedule 09.09.2018    source источник
comment
На самом деле это не отвечает на ваш вопрос, но может предоставить вам альтернативный подход. В Laravel Passport встроена поддержка использования API с приложением Javascript.   -  person Jonathon    schedule 09.09.2018
comment
Спасибо за ваш ответ - однако у меня это уже было, и это не сработало. Мне пришлось вручную сохранить токен в файле cookie и использовать его в заголовке авторизации: Bearer + accesstoken   -  person Inigo EC    schedule 09.09.2018
comment
ты получил ответ? как тебе это удалось? Я хочу сохранить токен в файле cookie, а не в локальном хранилище   -  person Malkhazi Dartsmelidze    schedule 09.04.2019


Ответы (1)


Да, это безопасно, но все же вам нужно добавить промежуточное программное обеспечение на свои маршруты.

Прежде чем мы будем использовать JWT AUth, это наше решение на стороне интерфейса на странице входа.

axios({method: 'post', 
      data: {email: this.email.trim(), 
             password: this.password}, 
             url: '/api/login'})
.then(res => {

    if (res.data.success) {

      // Sets the Cookie Expiration Time to 1 Hour same as JWT Token on the Backend
      var now = new Date();
      now.setTime(now.getTime() + 1 * 3600 * 1000);
      document.cookie = "ut=" + res.data.data.type;
      document.cookie = "api_token=" + res.data.data.token;
      document.cookie = "expires=" + now.toUTCString() + ";"

      // Redirect to a new URL, or do something on success
       window.location.href = "/dashboard";
    }

}).catch(function (error) {
  //error 
});

Какие-либо предложения?

person mpalencia    schedule 26.06.2019