@Bezlepkin
Yii, PHP, JS, Android

Как в Vue лучше запрашивать refresh_token?

Привет!
Нужно перед каждым ajax-запросом проверять срок действия access_token, и если просрочен перед ajax-запросом сделать запрос на его перевыпуск по refresh_token.
Делаю так:

Vue.http.interceptors.push((request, next) => {
	var accessToken = null
	if (window.location.pathname !== '/login') {
		if (window.localStorage && typeof window.localStorage.user !== 'undefined' && typeof window.localStorage.user_auth !== 'undefined') {
			var _user = JSON.parse(window.localStorage.user)
			var userAuth = JSON.parse(window.localStorage.user_auth)
			var interval = parseInt(new Date().getTime() / 1000) - userAuth.timestamp
			// ставим - 10 секунд, перестраховываемся на счет задержки при выдачи токена
			if (interval > userAuth.expires_in - 10) {
				if (request.url !== 'https://api.domain.ru/v1/oauth/refresh') {
					accessToken = user.refreshToken(_user.id, userAuth.refresh_token)
					request.headers.set('Authorization', 'Bearer ' + accessToken)
				}
				next()
			}
		} else {

		}
		accessToken = store.state.userAuth.access_token
		request.headers.set('Authorization', 'Bearer ' + accessToken)
	}
})


Но получается какая то порнография.
Как лучше это сделать?
  • Вопрос задан
  • 355 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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