|
@@ -0,0 +1,56 @@
|
|
|
|
+import Cookie from 'js-cookie'
|
|
|
|
+
|
|
|
|
+export const saveUserData = ({ idToken, expiresIn }, { email, avatar }) => {
|
|
|
|
+ expiresIn = 3600
|
|
|
|
+ const tokenExpiration = Date.now() + expiresIn * 1000
|
|
|
|
+ localStorage.setItem('jwt', idToken)
|
|
|
|
+ localStorage.setItem('expiresIn', tokenExpiration)
|
|
|
|
+ localStorage.setItem('user', email)
|
|
|
|
+ localStorage.setItem('avatar', avatar)
|
|
|
|
+
|
|
|
|
+ Cookie.set('jwt', idToken)
|
|
|
|
+ Cookie.set('expiresIn', tokenExpiration)
|
|
|
|
+ Cookie.set('user', email)
|
|
|
|
+ Cookie.set('avatar', avatar)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+export const getUserFromCookie = (req) => {
|
|
|
|
+ if (!req.headers.cookie) { return undefined }
|
|
|
|
+ const jwtCookie = req.headers.cookie.split(';').find(c => c.trim().startWith('jwt='))
|
|
|
|
+ const expiresInCookie = req.headers.cookie.split(';').find(c => c.trim().startWith('expiresIn='))
|
|
|
|
+ const userCookie = req.headers.cookie.split(';').find(c => c.trim().startWith('user='))
|
|
|
|
+ const avatarCookie = req.headers.cookie.split(';').find(c => c.trim().startWith('avatar='))
|
|
|
|
+
|
|
|
|
+ if (!jwtCookie || !expiresInCookie || !userCookie || !avatarCookie) { return undefined }
|
|
|
|
+
|
|
|
|
+ const jwt = jwtCookie.split('=')[1]
|
|
|
|
+ const expiresIn = expiresInCookie.split('=')[1]
|
|
|
|
+ const user = userCookie.split('=')[1]
|
|
|
|
+ const avatar = avatarCookie.split('=')[1]
|
|
|
|
+
|
|
|
|
+ return { jwt, expiresIn, user, avatar }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+export const getUserFromLocalStorage = () => {
|
|
|
|
+ if (localStorage) {
|
|
|
|
+ const jwt = localStorage.getItem('jwt')
|
|
|
|
+ const expiresIn = localStorage.getItem('expiresIn')
|
|
|
|
+ const user = localStorage.getItem('user')
|
|
|
|
+ const avatar = localStorage.getItem('avatar')
|
|
|
|
+
|
|
|
|
+ return { jwt, expiresIn, user, avatar }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+export const clearUserData = () => {
|
|
|
|
+ if (!process.server) {
|
|
|
|
+ localStorage.removeItem('jwt')
|
|
|
|
+ localStorage.removeItem('expiresIn')
|
|
|
|
+ localStorage.removeItem('user')
|
|
|
|
+ localStorage.removeItem('avatar')
|
|
|
|
+ }
|
|
|
|
+ Cookie.remove('jwt')
|
|
|
|
+ Cookie.remove('expiresIn')
|
|
|
|
+ Cookie.remove('user')
|
|
|
|
+ Cookie.remove('avatar')
|
|
|
|
+}
|