前提・実現したいこと
実現したいこと:Rails5 + device_token_auth + Vue,Vuex,Vue-routerを用いた認証
上記の構成で、SPAのサイトを構築しており、
Vuexにてセッションを管理している中で、device_token_authのAPIである、
/validate_token
を呼ぶことで、ログイン済みの認証、およびアクセストークンのチェックを行なっています。
発生している問題・エラーメッセージ
認証が必要なページは全て /validate_tokenを呼び、
トークンを更新できた場合は継続し、
エラーが帰ってきたときは未ログインとしてログイン画面にリダイレクトという処理を書いています。
ところが、/validate_tokenをコールすると、Successで返ってくるのですが
Responseheaderのaccess-token、expiryが空で返ってきてしまいます。
これだけだと、コールするときのロジックのミスかと思うのですが、
axios.get('/api/v1/auth/validate_token')
の行にブレークポイントを置き、3秒ほどまってから実行すると、正しくaccess-token、expiryが返ってきてしまいます。
access-token: Cache-Control: max-age=0, private, must-revalidate client: 3HyFfBGkonNRfHdTPUszPQ Content-Type: application/json; charset=utf-8 ETag: W/"0e22fa9224caf87832fa1ac4547a9461" expiry:
該当のソースコード
js
1#routes.js 2 router.beforeEach(async (to, from, next) => { 3 await store.dispatch('session_check') 4 }
js
1#store/index.js 2 actions: { 3 async session_check(context) { 4 axios.get('/api/v1/auth/validate_token') 5 .then(res => { 6 context.commit('login', res.data.data); 7 }) 8 .catch(error => { 9 context.commit('logout'); 10 }) 11 }, 12 logout(context) { 13 context.commit('logout'); 14 }, 15 },
試したこと
二進も三進もな状況です・・・
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。