登录封装完成

This commit is contained in:
2022-05-09 10:03:33 +08:00
parent 5bae62d34d
commit e7a130533d
19 changed files with 604 additions and 70 deletions
+5 -3
View File
@@ -193,9 +193,10 @@ export const useRequest = (options = {
title: `错误:${showStatus(statusCode)}`
})
if (statusCode === 401) {
Taro.reLaunch({
url: '/pages/login/index'
})
//未登录
// Taro.reLaunch({
// url: '/pages/login/index'
// })
}
}
@@ -209,6 +210,7 @@ export const useRequest = (options = {
stateRef.current.error = false
stateRef.current.loading = false
setState(() => stateRef.current)
return stateRef.current
}
return {
+7 -5
View File
@@ -1,17 +1,17 @@
import { useEffect, useState } from "react"
import { WX_APPID } from "@/common/constant"
import useUserInfo from "./useUserInfo"
export default () => {
const {setToken, setSessionKey, setUserInfo} = useUserInfo()
const [loginState, setLoginState] = useState({
session_key: '',
token: '',
userInfo: ''
})
useEffect(() => {
getToken()
}, [])
const getToken = () => {
Taro.login({
success: function (res) {
@@ -34,6 +34,8 @@ export default () => {
session_key: data.session_key,
token: data.token
})
setToken(data.token)
setLoginState(data.session_key)
}
})
} else {
@@ -66,7 +68,7 @@ export default () => {
Appid: WX_APPID
},
success: (e) => {
console.log('123123')
setUserInfo({})
},
fail: (e) => {
console.log(e)
+41
View File
@@ -0,0 +1,41 @@
import { useDispatch, useSelector } from 'react-redux'
import { CLEAR_SESSIONKEY, SET_USERINFO, SET_TOKEN, SET_SESSIONKEY, CLEAR_USERINFO, CLEAR_TOKEN} from '@/constants/userInfo'
import {DataParam, UserParam} from '@/reducers/userInfo'
export default () => {
const user = useSelector((state:DataParam) => state.userInfo) as DataParam
const dispatch = useDispatch()
const setToken = (token: string) => {
dispatch({type:SET_TOKEN, data:{token}})
}
const setSessionKey = (sessionkey: string) => {
dispatch({type:SET_SESSIONKEY, data:{sessionkey}})
}
const setUserInfo = (userInfo: UserParam) => {
dispatch({type:SET_USERINFO, data:{userInfo}})
}
const removeUserInfo = () => {
dispatch({type:CLEAR_USERINFO})
}
const removeToken = () => {
dispatch({type:CLEAR_TOKEN})
}
const removeSessionKey = () => {
dispatch({type:CLEAR_SESSIONKEY})
}
return {
setToken,
setUserInfo,
setSessionKey,
removeUserInfo,
removeToken,
removeSessionKey,
user, //响应式数据返回
}
}