1
+ import Cookies from 'js-cookie'
2
+ import firebase from '@/plugins/firebase.js'
3
+
1
4
export const state = ( ) => ( {
2
5
user : null ,
3
6
info : null ,
7
+ uid : null ,
4
8
} )
5
9
6
10
export const mutations = {
@@ -11,6 +15,13 @@ export const mutations = {
11
15
state . user = null
12
16
}
13
17
} ,
18
+ saveUid ( state , payload ) {
19
+ if ( payload ) {
20
+ state . uid = payload
21
+ } else {
22
+ state . uid = null
23
+ }
24
+ } ,
14
25
setInfo ( state , payload ) {
15
26
if ( payload ) {
16
27
state . info = payload
@@ -21,9 +32,34 @@ export const mutations = {
21
32
}
22
33
23
34
export const actions = {
35
+ async login ( { dispatch, state } , user ) {
36
+ console . log ( 'userlogin' )
37
+ const token = await firebase . auth ( ) . currentUser . getIdToken ( true )
38
+ const userInfo = {
39
+ name : user . displayName ,
40
+ email : user . email ,
41
+ avatar : user . photoURL ,
42
+ uid : user . uid ,
43
+ }
44
+
45
+ Cookies . set ( 'access_token' , token ) // saving token in cookie for server rendering
46
+ await dispatch ( 'setUser' , userInfo )
47
+ await dispatch ( 'saveUid' , userInfo . uid )
48
+ } ,
49
+
50
+ async logout ( { commit } ) {
51
+ await firebase . auth ( ) . signOut ( )
52
+
53
+ Cookies . remove ( 'access_token' )
54
+ commit ( 'setUser' , null )
55
+ commit ( 'saveUid' , null )
56
+ } ,
24
57
setUser ( { commit } , payload ) {
25
58
commit ( 'setUser' , payload )
26
59
} ,
60
+ saveUid ( { commit } , payload ) {
61
+ commit ( 'saveUid' , payload )
62
+ } ,
27
63
setInfo ( { commit } , payload ) {
28
64
commit ( 'setInfo' , payload )
29
65
} ,
@@ -36,4 +72,10 @@ export const getters = {
36
72
info : ( state ) => {
37
73
return state . info
38
74
} ,
75
+ uid : ( state ) => {
76
+ return state . uid
77
+ } ,
78
+ isAuthenticated : ( state ) => {
79
+ return ! ! state . user && ! ! state . user . uid
80
+ } ,
39
81
}
0 commit comments