From 3fe854ff869d2f0b76ba42aa623fc9f681037a49 Mon Sep 17 00:00:00 2001 From: jl-zhoujl2 Date: Mon, 15 Aug 2022 09:14:14 +0800 Subject: [PATCH] =?UTF-8?q?8.15=20=E7=99=BB=E5=BD=95=E8=BF=87=E7=A8=8B?= =?UTF-8?q?=E4=B8=AD=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=99=BB=E5=BD=95=E5=A4=B1=E8=B4=A5=E7=9A=84?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/401.tsx | 18 ++++++++--- src/pages/LoadingPage/index.tsx | 14 ++++++--- src/pages/usercloud/login/index.tsx | 46 ++++++++++++++-------------- src/pages/usercooper/login/index.tsx | 6 ++-- src/pages/userexpert/login/index.tsx | 42 ++++++++++++------------- src/pages/userformal/login/index.tsx | 6 ++-- src/services/login.ts | 12 +++++++- 7 files changed, 85 insertions(+), 59 deletions(-) diff --git a/src/pages/401.tsx b/src/pages/401.tsx index dd7dbb4..2666dbf 100644 --- a/src/pages/401.tsx +++ b/src/pages/401.tsx @@ -1,12 +1,14 @@ +import { logoutTokenApi } from '@/services/login'; import { getURLInformation, isNotEmpty } from '@/utils/CommonUtils'; import { getSessionRoleData } from '@/utils/session'; -import { Result, Typography } from 'antd'; +import { Button, Result, Typography } from 'antd'; import React, { useEffect, useState } from 'react'; import { history } from 'umi'; -const message = { +const messageMap = { 401: '您的用户信息有误,请联系管理员', 402: '您的用户角色信息缺失,请联系管理员', + 403: '您的用户角色信息异常,请重新登录', 90401: '您的登录已超时,请重新登录', 404: '系统错误,请联系管理员', }; @@ -16,6 +18,7 @@ const RequestTimeoutPage: React.FC<{}> = () => { const { Text } = Typography; const [time, setTime] = useState(10); const roleData = getSessionRoleData(); + const token = sessionStorage.getItem('Authorization'); useEffect(() => { let timeInteval: any @@ -44,11 +47,18 @@ const RequestTimeoutPage: React.FC<{}> = () => { }) } } + const redirectLogin = () => { + logoutTokenApi({ mall3_token: token }).then(res => { + history.replace({ + pathname: '/userformal/login', + }) + }) + } return ( {time}秒后进入默认角色} + title={messageMap[code]} + extra={isNotEmpty(roleData) && code == 402 ? {time}秒后进入默认角色 : code == 403 ? : null} /> ); }; diff --git a/src/pages/LoadingPage/index.tsx b/src/pages/LoadingPage/index.tsx index ee8da3e..024a97f 100644 --- a/src/pages/LoadingPage/index.tsx +++ b/src/pages/LoadingPage/index.tsx @@ -38,10 +38,16 @@ const Loading: React.FC<{}> = () => { await cooperReloadToken('', headers) await getUserData(token, url, extra, 1) } else if (userType == '2') {//专家 - await refreshTokenApi(params, header).then(async res => { - if (res?.success == true) { - sessionStorage.setItem('Authorization', res?.data?.value); - await getUserData(token, url, extra, 1) + // await refreshTokenApi(params, header).then(async res => { + // if (res?.success == true) { + // sessionStorage.setItem('Authorization', res?.data?.value); + // await getUserData(token, url, extra, 1) + // } + // }) + history.replace({ + pathname: '/401', + query: { + code: '403', } }) } diff --git a/src/pages/usercloud/login/index.tsx b/src/pages/usercloud/login/index.tsx index 112ac20..2928fa1 100644 --- a/src/pages/usercloud/login/index.tsx +++ b/src/pages/usercloud/login/index.tsx @@ -37,7 +37,7 @@ const Login: React.FC = (props) => { const [imgUrl, setImgUrl] = useState(''); const [tmpToken, setTmpToken] = useState(''); const remainingTime = 3 //刷新token的剩余时间,单位小时 - + const genRandomString = (len: number) => { const text = 'abcdefghijklmnopqrstuvwxyz0123456789'; const rdmIndex = (text: string | any[]) => (Math.random() * text.length) | 0; @@ -56,7 +56,7 @@ const Login: React.FC = (props) => { sessionStorage.clear(); changeCaptcha(); }, []); - + //登录刷新Token方法 const refreshToken = async (data: any) => { const params = { @@ -68,10 +68,10 @@ const Login: React.FC = (props) => { const header = { clientId: REACT_APP_CLIENT_KEY, } - await refreshTokenApi(params,header).then(res => { - if(res?.success == true) { + await refreshTokenApi(params, header).then(res => { + if (res?.success == true) { sessionStorage.setItem('Authorization', res?.data?.value); - sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); + // sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); sessionStorage.setItem('scope', res?.data?.scope); history.push('/redirect'); } @@ -79,21 +79,21 @@ const Login: React.FC = (props) => { } const handleSubmit = async (values: any) => { - if(START_ENV == 'sim' || START_ENV == 'PROD'){ + if (START_ENV == 'sim' || START_ENV == 'PROD') { let code = { code: values.userCode } - await getPassword ({...code}).then((res: any) => { + await getPassword({ ...code }).then((res: any) => { if (res?.data) { - + disSet(true); CloudfakeAccountLogin({ ...values, tmpToken }).then((res) => { if (res?.success) { - if(moment(res?.data?.expiration).diff(moment(),'hours') < remainingTime) { + if (moment(res?.data?.expiration).diff(moment(), 'hours') < remainingTime) { refreshToken(res?.data) } else { sessionStorage.setItem('Authorization', res?.data?.value); - sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); + // sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); sessionStorage.setItem('scope', res?.data?.scope); history.push('/redirect'); } @@ -101,7 +101,7 @@ const Login: React.FC = (props) => { changeCaptcha() disSet(false); }); - + } else { message.error('口令不正确,请重新输入') } @@ -110,11 +110,11 @@ const Login: React.FC = (props) => { disSet(true); await CloudfakeAccountLogin({ ...values, tmpToken }).then((res) => { if (res?.success) { - if(moment(res?.data?.expiration).diff(moment(),'hours') < remainingTime) { + if (moment(res?.data?.expiration).diff(moment(), 'hours') < remainingTime) { refreshToken(res?.data) } else { sessionStorage.setItem('Authorization', res?.data?.value); - sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); + // sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); sessionStorage.setItem('scope', res?.data?.scope); history.push('/redirect'); } @@ -137,14 +137,14 @@ const Login: React.FC = (props) => { )} { - START_ENV == 'sim' || START_ENV == 'PROD' ? - - - - - - - : null + START_ENV == 'sim' || START_ENV == 'PROD' ? + + + + + + + : null } = (props) => { - - changeCaptcha()}/> + + changeCaptcha()} /> diff --git a/src/pages/usercooper/login/index.tsx b/src/pages/usercooper/login/index.tsx index a0d172e..729e9ef 100644 --- a/src/pages/usercooper/login/index.tsx +++ b/src/pages/usercooper/login/index.tsx @@ -71,7 +71,7 @@ const Login: React.FC = (props) => { await refreshTokenApi(params, header).then(res => { if (res?.success == true) { sessionStorage.setItem('Authorization', res?.data?.value); - sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); + // sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); sessionStorage.setItem('scope', res?.data?.scope); history.push('/redirect'); } @@ -93,7 +93,7 @@ const Login: React.FC = (props) => { refreshToken(res?.data) } else { sessionStorage.setItem('Authorization', res?.data?.value); - sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); + // sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); sessionStorage.setItem('scope', res?.data?.scope); history.push('/redirect'); } @@ -115,7 +115,7 @@ const Login: React.FC = (props) => { refreshToken(res?.data) } else { sessionStorage.setItem('Authorization', res?.data?.value); - sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); + // sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); sessionStorage.setItem('scope', res?.data?.scope); history.push('/redirect'); } diff --git a/src/pages/userexpert/login/index.tsx b/src/pages/userexpert/login/index.tsx index 354784f..284adbc 100644 --- a/src/pages/userexpert/login/index.tsx +++ b/src/pages/userexpert/login/index.tsx @@ -68,10 +68,10 @@ const Login: React.FC = (props) => { const header = { clientId: REACT_APP_CLIENT_KEY, } - await refreshTokenApi(params,header).then(res => { - if(res?.success == true) { + await refreshTokenApi(params, header).then(res => { + if (res?.success == true) { sessionStorage.setItem('Authorization', res?.data?.value); - sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); + // sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); sessionStorage.setItem('scope', res?.data?.scope); history.push('/redirect'); } @@ -79,21 +79,21 @@ const Login: React.FC = (props) => { } const handleSubmit = async (values: any) => { - if(START_ENV == 'sim' || START_ENV == 'PROD'){ + if (START_ENV == 'sim' || START_ENV == 'PROD') { let code = { code: values.userCode } - await getPassword ({...code}).then((res) => { + await getPassword({ ...code }).then((res) => { if (res?.data) { - + disSet(true); ZjfakeAccountLogin({ ...values, tmpToken }).then((res) => { if (res?.success) { - if(moment(res?.data?.expiration).diff(moment(),'hours') < remainingTime) { + if (moment(res?.data?.expiration).diff(moment(), 'hours') < remainingTime) { refreshToken(res?.data) } else { sessionStorage.setItem('Authorization', res?.data?.value); - sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); + // sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); sessionStorage.setItem('scope', res?.data?.scope); history.push('/redirect'); } @@ -101,7 +101,7 @@ const Login: React.FC = (props) => { changeCaptcha(); disSet(false); }); - + } else { message.error('口令不正确,请重新输入') } @@ -110,11 +110,11 @@ const Login: React.FC = (props) => { disSet(true); await ZjfakeAccountLogin({ ...values, tmpToken }).then((res) => { if (res?.success) { - if(moment(res?.data?.expiration).diff(moment(),'hours') < remainingTime) { + if (moment(res?.data?.expiration).diff(moment(), 'hours') < remainingTime) { refreshToken(res?.data) } else { sessionStorage.setItem('Authorization', res?.data?.value); - sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); + // sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); sessionStorage.setItem('scope', res?.data?.scope); history.push('/redirect'); } @@ -141,14 +141,14 @@ const Login: React.FC = (props) => { )} { - START_ENV == 'sim' || START_ENV == 'PROD' ? - - - - - - - : null + START_ENV == 'sim' || START_ENV == 'PROD' ? + + + + + + + : null } = (props) => { - - changeCaptcha()}/> + + changeCaptcha()} /> diff --git a/src/pages/userformal/login/index.tsx b/src/pages/userformal/login/index.tsx index 1158b81..3411bc5 100644 --- a/src/pages/userformal/login/index.tsx +++ b/src/pages/userformal/login/index.tsx @@ -51,7 +51,7 @@ const Index: React.FC<{}> = () => { await refreshTokenApi(params, header).then(res => { if (res?.success == true) { sessionStorage.setItem('Authorization', res?.data?.value); - sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); + // sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); sessionStorage.setItem('scope', res?.data?.scope); history.push('/redirect'); } @@ -65,7 +65,7 @@ const Index: React.FC<{}> = () => { refreshToken(res?.data) } else { sessionStorage.setItem('Authorization', res?.data?.value); - sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); + // sessionStorage.setItem('refreshToken', res?.data?.refreshToken.value); sessionStorage.setItem('scope', res?.data?.scope); history.push('/redirect'); } @@ -180,7 +180,7 @@ const Index: React.FC<{}> = () => { + diff --git a/src/services/login.ts b/src/services/login.ts index 8d7d9bd..24e4932 100644 --- a/src/services/login.ts +++ b/src/services/login.ts @@ -107,4 +107,14 @@ export async function getFakeCaptcha(params: any) { }); } - +/** + * 用户登出 + * @param params + * @returns + */ +export async function logoutTokenApi(params: any) { + return request('/api/auth/logout', { + method: 'GET', + params: params + }); +}