2016-11-08 2 views
1

Я создаю приложение, использующее Angular 1.5.8 и Laravel 5.2. Я использую библиотеку от Luca Degasperi для создания Token Based AuthПроверить маркер доступа до HTTP-запроса

Via Angular Я делаю звонок, и я получаю access_token, TTL и refresh_token. Я храню access_token и refresh_token на localStorage. Я могу использовать access_token, чтобы получить вызовы, чтобы получить некоторые данные из моего API. Когда истекает токен, я получаю сообщение о том, что токен недействителен с кодом 401

Итак, мой вопрос заключается в том, как проверить, действительно ли токен действителен, прежде чем отправлять HTTP-запрос в мой API? Каков наилучший способ обновления токена? Хорошо, я могу отправить запрос на обновление моего токена до https://my.api/oauth?grant_type=refresh_token&refresh_token=f32j93201h00xpaf1, но как проверить его перед каждым HTTP-запросом? Могу ли я повторить вызов, если код ответа 401? И как?

Пожалуйста, дайте мне несколько советов:

+0

Вы можете использовать перехватчик ответов [$ http error response] (https://docs.angularjs.org/api/ng/service/$http#interceptors) для повторения вызова, если код ответа 401. – georgeawg

ответ

1

У меня была такая же проблема несколько дней назад. Угловое Error response interceptor - это все, что вам нужно;) Кроме того, this article был действительно полезен

0

Вы не можете. Вы должны проверить вход в систему. Поэтому это просто повторный вход в систему.

Я думаю, что если вы получаете 401, токен обновления уже выполнен.

Хотя я думаю, что вы можете присоединиться к этому токену обновления со всеми вашими запросами? Я могу быть не прав.

Убедитесь, что ваш токен TTL всегда обновляется, время от времени обновляя его TTL (например, с запросами на ваш API).

0

Не можете ли вы использовать TTL, чтобы определить, активен ли токен? Когда вы храните маркеры в локальном хранилище, вы можете добавить дату/время, в котором был сохранен токен, и каждый раз, когда вы отправляетесь на вызов службы, вы можете проверить TTL на время хранения токена.

Он расскажет вам только о том, когда он истечет, и не будет, если токен был признан недействительным по какой-либо другой причине.

Смежные вопросы