Size: a a a

Nuxt.js — русскоговорящее сообщество

2020 February 17

V💊

Vladimir 💊 Voytenko in Nuxt.js — русскоговорящее сообщество
Valar Morghulis
Доброго утра, ребят. Подскажите, пожалуйста, есть ли в Nuxt возможность продления токена после его истечения, с помощью refresh_token'а? Или есть хотя бы возможность отловить этот момент, когда он истекает?
в nuxt auth - не помню, но если даже нет реализовать это не очень сложно самостоятельно
источник

VM

Valar Morghulis in Nuxt.js — русскоговорящее сообщество
Vladimir 💊 Voytenko
в nuxt auth - не помню, но если даже нет реализовать это не очень сложно самостоятельно
Просто я не понимаю, как этот момент-то хукнуть, когда он просрочился? Типа плагин для axios'а писать и ловить 401 статус?
источник

VM

Valar Morghulis in Nuxt.js — русскоговорящее сообщество
Но это будет срабатывать и просто на "unuthorized"
источник

V💊

Vladimir 💊 Voytenko in Nuxt.js — русскоговорящее сообщество
Valar Morghulis
Но это будет срабатывать и просто на "unuthorized"
не вижу в этом проблем, попробовали запросить - не получилось и тогда уже мы точно уверены, что человек просто не залогинился, а не истек у него аксесс.
источник

VM

Valar Morghulis in Nuxt.js — русскоговорящее сообщество
Vladimir 💊 Voytenko
не вижу в этом проблем, попробовали запросить - не получилось и тогда уже мы точно уверены, что человек просто не залогинился, а не истек у него аксесс.
То есть можно и чекнуть есть ли вообще refresh_token?
источник

VM

Valar Morghulis in Nuxt.js — русскоговорящее сообщество
Хм, попробую, спасибо
источник

V💊

Vladimir 💊 Voytenko in Nuxt.js — русскоговорящее сообщество
Valar Morghulis
То есть можно и чекнуть есть ли вообще refresh_token?
да, этот вариант наверное даже лучше
источник

Д

Деда in Nuxt.js — русскоговорящее сообщество
Valar Morghulis
Просто я не понимаю, как этот момент-то хукнуть, когда он просрочился? Типа плагин для axios'а писать и ловить 401 статус?
У рефреш токена по идее есть время его жизни. Потом нужно понять что за рефреш токен. Какой подход используется? Если jwt эт одно, если что то своё это другое. Но раз есть рефреш токен значит и должен быть метод для его рефереша
источник

VM

Valar Morghulis in Nuxt.js — русскоговорящее сообщество
Деда
У рефреш токена по идее есть время его жизни. Потом нужно понять что за рефреш токен. Какой подход используется? Если jwt эт одно, если что то своё это другое. Но раз есть рефреш токен значит и должен быть метод для его рефереша
Laravel Passport
источник

Д

Деда in Nuxt.js — русскоговорящее сообщество
источник

Д

Деда in Nuxt.js — русскоговорящее сообщество
Valar Morghulis
Laravel Passport
источник

VM

Valar Morghulis in Nuxt.js — русскоговорящее сообщество
Я пытался, но что-то не могу сообразить, как его завести 😄
Получается, в onRefreshError запрос на обновление посылать или что, не могу понять)
источник

Д

Деда in Nuxt.js — русскоговорящее сообщество
Ну вот как вариант

setToken({commit}, {token, expiresIn}) {
   this.$axios.setToken(token, 'Bearer');
   const expiryTime = new Date(new Date().getTime() + expiresIn * 1000);
   cookies.set('x-access-token', token, {expires: expiryTime});
   commit('SET_TOKEN', token);
 },
источник

Д

Деда in Nuxt.js — русскоговорящее сообщество
Когда истечёт время - кука умрет
источник

Д

Деда in Nuxt.js — русскоговорящее сообщество
import cookies from 'js-cookie';

export default function ({ store, redirect }) {
 const token = cookies.get('x-access-token');

 if (! token) {
   store.dispatch('refreshToken')
     .catch(errors => {
       console.dir(errors);
       store.dispatch('logout');
     });
 }
}
источник

Д

Деда in Nuxt.js — русскоговорящее сообщество
А middleware скрипт проверит, если токена нет, то попытается рефрешнуть, если не получится то выкинет на логаут
источник

Д

Деда in Nuxt.js — русскоговорящее сообщество
То есть сервер возвращает время жизни токена в клиент так же. Клиент ставит куку себе ровно на это время. Потом если кука умерла пробует рефрешнуть. Если не получилось то увы, логаут
источник

VM

Valar Morghulis in Nuxt.js — русскоговорящее сообщество
Да, но где урл для рефреша токена-то указывать?)
источник

Д

Деда in Nuxt.js — русскоговорящее сообщество
источник

VM

Valar Morghulis in Nuxt.js — русскоговорящее сообщество
Блин, я слепой, сори
источник