登录封装完成
This commit is contained in:
+5
-3
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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, //响应式数据返回
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user