Эх сурвалжийг харах

三方登陆token=>userid

canghailong 5 сар өмнө
parent
commit
3863f7e408

+ 5 - 0
src/api/auth/loginApi.js

@@ -2,6 +2,7 @@
 import { moduleRequest } from '@/utils/request'
 
 const request = moduleRequest(`/api/webapp/auth/b/`)
+const requestHeader = moduleRequest(`/api/webapp/`)
 /**
  * 登录
  *
@@ -32,5 +33,9 @@ export default {
 	// 获取用户信息
 	getLoginUser(data) {
 		return request('getLoginUser', data, 'get')
+	},
+	// 获取用户信息
+	getToken(data) {
+		return requestHeader('disk/CollegeUser/getToken', data, 'get')
 	}
 }

+ 12 - 13
src/router/index.js

@@ -80,21 +80,20 @@ router.beforeEach(async (to, from, next) => {
 		next()
 		return false
 	} else {
-		if (!token) {
-			next({
-				path: '/slogin'
-			})
-			return false
+		if (to.query.userId) {
+			afterLogin({ userId: to.query.userId })
 		}
-		if (to.query.token) {
-			afterLogin(to.query.token)
-		} else {
-			if (token) {
-				// 有token的时候才保存登录之前要访问的页面
-				tool.data.set('LAST_VIEWS_PATH', to.fullPath)
-			}
-			fullPageTool.check(to)
+		if (token) {
+			// 有token的时候才保存登录之前要访问的页面
+			tool.data.set('LAST_VIEWS_PATH', to.fullPath)
 		}
+		fullPageTool.check(to)
+	}
+	if (!token) {
+		next({
+			path: '/slogin'
+		})
+		return false
 	}
 	// 整页路由处理
 	if (to.meta.fullpage) {

+ 4 - 3
src/router/unilLogin.js

@@ -7,7 +7,8 @@ import { message } from 'ant-design-vue'
 import { useGlobalStore, useMyResourceStore } from '@/store'
 import routerUtil from '@/utils/routerUtil'
 
-export const afterLogin = async (loginToken) => {
+export const afterLogin = async (obj) => {
+	const loginToken = await loginApi.getToken(obj)
 	tool.data.set('TOKEN', loginToken)
 	//cookie里添加 token
 	tool.cookie.set('Token', loginToken)
@@ -20,11 +21,11 @@ export const afterLogin = async (loginToken) => {
 	tool.data.set('USER_INFO', loginUser)
 
 	// 获取用户的菜单
-	const menu = await userCenterApi.userLoginMenu()
+	const menu = await userCenterApi.userLoginMenu() ?? []
 	let indexMenu = routerUtil.getIndexMenu(menu).path
 	tool.data.set('MENU', menu)
 	// 重置系统默认应用
-	tool.data.set('SNOWY_MENU_MODULE_ID', menu[0].id)
+	tool.data.set('SNOWY_MENU_MODULE_ID', menu[0]?.id)
 	message.success('登录成功')
 	if (!!tool.data.get('LAST_VIEWS_PATH')) {
 		// 如果有缓存,将其登录跳转到最后访问的路由

+ 5 - 2
src/utils/reSourceRequest.js

@@ -1,10 +1,10 @@
- 
 // 统一的请求发送
 import axios from 'axios'
 import qs from 'qs'
 import { Modal, message, notification } from 'ant-design-vue'
 import sysConfig from '@/config/index'
 import tool from '@/utils/tool'
+import router from '@/router'
 
 // 以下这些code需要重新登录
 const reloadCodes = [401, 1011007, 1011008]
@@ -61,7 +61,10 @@ const error = () => {
 			tool.data.remove('USER_INFO')
 			tool.data.remove('MENU')
 			tool.data.remove('PERMISSIONS')
-			window.location.reload()
+			// window.location.reload()
+			router.replace({
+				path: '/'
+			})
 		}
 	})
 }

+ 12 - 2
src/utils/request.js

@@ -4,6 +4,7 @@ import qs from 'qs'
 import { Modal, message, notification } from 'ant-design-vue'
 import sysConfig from '@/config/index'
 import tool from '@/utils/tool'
+import router from '@/router'
 
 // 以下这些code需要重新登录
 const reloadCodes = [401, 1011007, 1011008]
@@ -27,7 +28,13 @@ const service = axios.create({
 	baseURL: '/api', // api base_url
 	timeout: sysConfig.TIMEOUT // 请求超时时间
 })
-const whiteList = ['footprint/add', 'coursestudentburialpoint/add', 'coursecentry/addViewCount','courselog/add','userread/add']
+const whiteList = [
+	'footprint/add',
+	'coursestudentburialpoint/add',
+	'coursecentry/addViewCount',
+	'courselog/add',
+	'userread/add'
+]
 function urlStr(str) {
 	const last = str.lastIndexOf('/')
 	const secondLast = str.lastIndexOf('/', last - 1)
@@ -65,7 +72,10 @@ const error = () => {
 			tool.data.remove('USER_INFO')
 			tool.data.remove('MENU')
 			tool.data.remove('PERMISSIONS')
-			window.location.reload()
+			// window.location.reload()
+			router.replace({
+				path: '/'
+			})
 		}
 	})
 }