@@ -17,6 +17,10 @@ export interface IState {
1717 * ログイン中かどうか
1818 */
1919 loggedIn : boolean
20+ /**
21+ * ログイントークン
22+ */
23+ token : string | null
2024 /**
2125 * ローディング
2226 */
@@ -34,6 +38,7 @@ export interface IState {
3438export const state = ( ) : IState => ( {
3539 authUser : null ,
3640 loggedIn : false ,
41+ token : null ,
3742 busy : {
3843 register : false ,
3944 login : false ,
@@ -48,6 +53,9 @@ export const state = (): IState => ({
4853export const getters = {
4954 isAuthenticated ( state : IState ) : boolean {
5055 return ! ! state . loggedIn
56+ } ,
57+ getToken ( state : IState ) : string | null {
58+ return state . token
5159 }
5260}
5361
@@ -67,6 +75,12 @@ export const mutations = {
6775 updateLoginStatus ( state : IState , status : boolean ) : void {
6876 state . loggedIn = status
6977 } ,
78+ /**
79+ * ログイントークンを更新する
80+ */
81+ updateLoginToken ( state : IState , token : string | null ) : void {
82+ state . token = token
83+ } ,
7084 /**
7185 * 処理中ステータスを更新する
7286 */
@@ -117,11 +131,16 @@ export const actions = {
117131 cancelToken : cancelToken . getToken ( payload )
118132 } as AxiosRequestConfig
119133 )
134+ const token = headers [ 'access-token' ]
120135
121- setToken ( headers [ 'access-token' ] )
136+ if ( process . client && token && data . loggedIn ) {
137+ setToken ( token )
138+ }
122139
123140 // ログイン状態を更新
124141 commit ( 'updateLoginStatus' , data . loggedIn )
142+ // ログイントークンを更新
143+ commit ( 'updateLoginToken' , token )
125144 // ユーザー情報をストアに保存
126145 commit ( 'SET_USER' , data )
127146
@@ -162,10 +181,14 @@ export const actions = {
162181 } as AxiosRequestConfig
163182 )
164183
165- unsetToken ( )
184+ if ( process . client && ! data . loggedIn ) {
185+ unsetToken ( )
186+ }
166187
167188 // ログイン状態を更新
168189 commit ( 'updateLoginStatus' , data . loggedIn )
190+ // ログイントークンを更新
191+ commit ( 'updateLoginToken' , null )
169192
170193 return data
171194 } catch ( err ) {
@@ -198,13 +221,20 @@ export const actions = {
198221 cancelToken : cancelToken . getToken ( payload )
199222 } as AxiosRequestConfig
200223 )
201-
202- if ( headers [ 'access-token' ] && data . loggedIn ) {
203- setToken ( headers [ 'access-token' ] )
224+ const token = headers [ 'access-token' ]
225+
226+ if ( process . client ) {
227+ if ( token && data . loggedIn ) {
228+ setToken ( token )
229+ } else if ( ! token || ! data . loggedIn ) {
230+ unsetToken ( )
231+ }
204232 }
205233
206234 // ログイン状態を更新
207235 commit ( 'updateLoginStatus' , data . loggedIn )
236+ // ログイントークンを更新
237+ commit ( 'updateLoginToken' , token )
208238
209239 return data
210240 } catch ( err ) {
0 commit comments