1
- import { login , logout , getInfo } from '@/api/user'
2
- import { getAccessToken , setAccessToken , removeAccessToken } from '@/utils/auth'
3
- import { getRefreshToken , setRefreshToken , removeRefreshToken } from '@/utils/auth'
1
+ import { login , socialLogin , logout , getInfo } from '@/api/user'
2
+ import { getAccessToken , setAccessToken , removeAccessToken } from '@/utils/auth'
3
+ import { getRefreshToken , setRefreshToken , removeRefreshToken } from '@/utils/auth'
4
4
import router from '@/router'
5
5
6
6
@@ -50,12 +50,12 @@ const mutations = {
50
50
51
51
const actions = {
52
52
// user login
53
- login ( { commit } , userInfo ) {
53
+ login ( { commit} , userInfo ) {
54
54
// console.info("login in store")
55
- const { username, password } = userInfo
55
+ const { username, password} = userInfo
56
56
return new Promise ( ( resolve , reject ) => {
57
57
login ( { username : username . trim ( ) , password : password } ) . then ( response => {
58
- const data = response
58
+ const data = response
59
59
// console.log("login done")
60
60
commit ( 'SET_ACCESS_TOKEN' , data . access )
61
61
commit ( 'SET_REFRESH_TOKEN' , data . refresh )
@@ -70,11 +70,36 @@ const actions = {
70
70
} )
71
71
} ,
72
72
73
-
73
+ socialLogin ( { commit} , oauthInfo ) {
74
+ // console.info("login in store")
75
+ // console.info(thirdPart)
76
+ // console.info("xx")
77
+ // console.info(oauthCode)
78
+ // fixme 这里后续应该直接获取到github的access token发送到后端去
79
+ // fixme 这样后端就不用写callback url即可
80
+ const { thirdPart, oauthCode} = oauthInfo
81
+
82
+ const data = { code : oauthCode }
83
+ return new Promise ( ( resolve , reject ) => {
84
+ socialLogin ( thirdPart , data ) . then ( response => {
85
+ const data = response
86
+ // console.log("login done")
87
+ commit ( 'SET_ACCESS_TOKEN' , data . access_token )
88
+ commit ( 'SET_REFRESH_TOKEN' , data . refresh_token )
89
+ // token保存在cookie和store中
90
+ setAccessToken ( data . access_token )
91
+ setRefreshToken ( data . refresh_token )
92
+ // console.log("set access token done")
93
+ resolve ( )
94
+ } ) . catch ( error => {
95
+ reject ( error )
96
+ } )
97
+ } )
98
+ } ,
74
99
// todo 为啥vue-element-admin框架中F5刷新界面会重新获取info,如何实现的?
75
100
// todo 是permission中的限制吗?
76
101
// get user info
77
- getInfo ( { commit, state } ) {
102
+ getInfo ( { commit, state} ) {
78
103
return new Promise ( ( resolve , reject ) => {
79
104
getInfo ( state . accessToken ) . then ( response => {
80
105
// console.log('response is:',response)
@@ -86,7 +111,7 @@ const actions = {
86
111
reject ( 'Verification failed, please Login again.' )
87
112
}
88
113
89
- const { roles, name, avatar, introduction } = data
114
+ const { roles, name, avatar, introduction} = data
90
115
// console.log("roles in getinfo is: ",roles)
91
116
// roles must be a non-empty array
92
117
if ( ! roles || roles . length <= 0 ) {
@@ -105,7 +130,7 @@ const actions = {
105
130
} ,
106
131
107
132
// user logout
108
- logout ( { commit, state, dispatch } ) {
133
+ logout ( { commit, state, dispatch} ) {
109
134
return new Promise ( ( resolve , reject ) => {
110
135
111
136
logout ( state . token ) . then ( ( ) => {
@@ -118,7 +143,7 @@ const actions = {
118
143
119
144
// reset visited views and cached views
120
145
// to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2485
121
- dispatch ( 'tagsView/delAllViews' , null , { root : true } )
146
+ dispatch ( 'tagsView/delAllViews' , null , { root : true } )
122
147
123
148
resolve ( )
124
149
} ) . catch ( error => {
@@ -128,7 +153,7 @@ const actions = {
128
153
} ,
129
154
130
155
// remove token
131
- resetToken ( { commit } ) {
156
+ resetToken ( { commit} ) {
132
157
return new Promise ( resolve => {
133
158
commit ( 'RESET_STATE' )
134
159
removeAccessToken ( )
@@ -138,22 +163,22 @@ const actions = {
138
163
} ,
139
164
140
165
// dynamically modify permissions
141
- async changeRoles ( { commit, dispatch } , role ) {
166
+ async changeRoles ( { commit, dispatch} , role ) {
142
167
const token = role + '-token'
143
168
144
169
commit ( 'SET_ACCESS_TOKEN' , token )
145
170
setAccessToken ( token )
146
171
147
- const { roles } = await dispatch ( 'getInfo' )
172
+ const { roles} = await dispatch ( 'getInfo' )
148
173
149
174
150
175
// generate accessible routes map based on roles
151
- const accessRoutes = await dispatch ( 'permission/generateRoutes' , roles , { root : true } )
176
+ const accessRoutes = await dispatch ( 'permission/generateRoutes' , roles , { root : true } )
152
177
// dynamically add accessible routes
153
178
router . addRoutes ( accessRoutes )
154
179
155
180
// reset visited views and cached views
156
- dispatch ( 'tagsView/delAllViews' , null , { root : true } )
181
+ dispatch ( 'tagsView/delAllViews' , null , { root : true } )
157
182
}
158
183
}
159
184
0 commit comments