токен храните в хранилище, дублируя его в localstorage или в куки. на клиенте все просто - если токен есть, значит юзер залогинен, если его нет - значит обратное. токен валидируйте не на клиенте, а на сервере, когда данные запрашиваете. если токен протух, отправляете 401, ловите этот 401 на клиенте, в том же интерцепторе например, и делаете разные вещи - перенаправляете на страницу логина, или запрашиваете новый токен, или ещё что нибудь. при логауте уделяете токен из хранилища и из Кук или локалсторадж. При инициализации приложения читаете куки или локалсторадж и если там есть токен пихаете его в хранилище.
Alex, понятно, спасибо )
Во Vuex со храню,
а в header обязательно вставлять this.$http.defaults.headers['Authorization'] = localStorage.token || ''?
Если да, то перед вызовом axios?
Константин, ну вот у вас есть на сервере данные например. эти данные должны быть доступны только залогиненым юзерам. следовательно эти данные нужно защитить токеном. т.е. сервер отдаст эти данные только такому запросу, который предоставит валидный токен. теперь вопрос - как запросу доставить этот токен на сервер? можно в заголовках запроса:
да как вам угодно. я например делаю так: написал обертку над axios, и при вызове передаю опцию signRequest: true/false. и на основании этой опции в интерцепторе запроса подписываю его токеном примерно так, грубый код:
нет каких-то 100% правильных техник. все техники которые описаны в большинстве тутриолов просто подходят под большинство случаев. но конечная реализация всегда зависит от проекта
Что я много всего перечитал запутался как правильней сделать )
Это я перед запросом отправляю
this.$http.defaults.headers['Authorization'] = localStorage.token
а затем axios?