Skip to content
This repository was archived by the owner on Jul 10, 2019. It is now read-only.

Commit 3f9d580

Browse files
committed
refactor(axios): move to call setToken to plugins/axios.ts
1 parent f9e8f83 commit 3f9d580

File tree

2 files changed

+45
-44
lines changed

2 files changed

+45
-44
lines changed

src/plugins/axios.ts

Lines changed: 42 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,52 @@
44

55
import { AxiosError, AxiosRequestConfig } from 'axios'
66
import Vue from 'vue'
7-
import { getTokenFromCookie } from '@/utilities/'
8-
9-
export default ({ $axios, app, req, error }) => {
10-
$axios.onRequest((config: AxiosRequestConfig) => {
11-
console.log('$axios.onRequest')
12-
const token = getTokenFromCookie(req)
13-
14-
if (token) {
15-
config.headers['access-token'] = token
7+
import { setToken, unsetToken, getTokenFromCookie } from '@/utilities/'
8+
9+
export default ({ $axios, app, req, error }): void => {
10+
$axios.onRequest(
11+
(config: AxiosRequestConfig): void => {
12+
const token = getTokenFromCookie(req)
13+
console.log('$axios.onRequest', token)
14+
15+
// トークンがあればログイン済みなのでリクエストヘッダで送信する
16+
if (token) {
17+
config.headers[app.$C.ACCESS_TOKEN_NAME] = token
18+
}
1619
}
17-
})
18-
19-
$axios.onResponse(response => {
20-
console.log('$axios.onResponse')
21-
})
22-
23-
$axios.onResponseError((response: AxiosError) => {
24-
console.log('$axios.onResponseError')
25-
// 通信エラー
26-
if (!response.response) {
27-
return
20+
)
21+
22+
$axios.onResponse(
23+
(response): void => {
24+
const token = response.headers[app.$C.ACCESS_TOKEN_NAME]
25+
console.log('$axios.onResponse', token)
26+
27+
// CSR のときだけトークンをセットする、 SSR のときは nuxtClientInit でセットしている
28+
if (process.client) {
29+
if (token) {
30+
setToken(token)
31+
} else {
32+
unsetToken()
33+
}
34+
}
2835
}
36+
)
37+
38+
$axios.onResponseError(
39+
(response: AxiosError): void => {
40+
console.log('$axios.onResponseError')
41+
// 通信エラー
42+
if (!response.response) {
43+
return
44+
}
2945

30-
const { status } = response.response
46+
const { status } = response.response
3147

32-
if (status === 401) {
33-
const message = '401 error'
48+
if (status === app.$C.HTTP_STATUS.UNAUTHORIZED) {
49+
const message = '401 error'
3450

35-
error({ statusCode: 401, message })
51+
error({ statusCode: 401, message })
52+
}
3653
}
37-
})
54+
)
3855
}

src/store/auth.ts

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { AxiosRequestConfig } from 'axios'
33
import { ILoginPayload, IUser } from '@/interface/User/ILogin'
44
import { ILoginCheckPayload, ILoginCheck } from '@/interface/User/ILoginCheck'
55
import { ILogoutPayload, ILogout } from '@/interface/User/ILogout'
6-
import { setToken, unsetToken, cancelToken } from '@/utilities/'
6+
import { cancelToken } from '@/utilities/'
77

88
/**
99
* store 用インターフェイス
@@ -131,11 +131,7 @@ export const actions = {
131131
cancelToken: cancelToken.getToken(payload)
132132
} as AxiosRequestConfig
133133
)
134-
const token = headers['access-token']
135-
136-
if (process.client && token && data.loggedIn) {
137-
setToken(token)
138-
}
134+
const token = headers[this.$C.ACCESS_TOKEN_NAME]
139135

140136
// ログイン状態を更新
141137
commit('updateLoginStatus', data.loggedIn)
@@ -181,10 +177,6 @@ export const actions = {
181177
} as AxiosRequestConfig
182178
)
183179

184-
if (process.client && !data.loggedIn) {
185-
unsetToken()
186-
}
187-
188180
// ログイン状態を更新
189181
commit('updateLoginStatus', data.loggedIn)
190182
// ログイントークンを更新
@@ -221,15 +213,7 @@ export const actions = {
221213
cancelToken: cancelToken.getToken(payload)
222214
} as AxiosRequestConfig
223215
)
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-
}
232-
}
216+
const token = headers[this.$C.ACCESS_TOKEN_NAME]
233217

234218
// ログイン状態を更新
235219
commit('updateLoginStatus', data.loggedIn)

0 commit comments

Comments
 (0)