From a18666747866fe98a329fd4d3530df6f6b698bb2 Mon Sep 17 00:00:00 2001
From: clay <20932067@zju.edu.cn>
Date: Mon, 5 Sep 2022 22:53:45 +0800
Subject: [PATCH] =?UTF-8?q?cas=20=E5=8D=95=E7=82=B9=E7=99=BB=E5=BD=95?=
=?UTF-8?q?=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ebts-ui/.env.development | 2 +-
ebts-ui/.env.staging | 3 ++-
ebts-ui/src/api/login.js | 17 ++++++++++++++++-
ebts-ui/src/permission.js | 14 +++++++++-----
ebts-ui/src/router/index.js | 10 ++++++++++
ebts-ui/src/settings.js | 4 ++--
ebts-ui/src/utils/request.js | 1 +
ebts-ui/src/views/cas-login.vue | 21 +++++++++++++++++++++
ebts-ui/src/views/cas-logout.vue | 21 +++++++++++++++++++++
ebts-ui/vue.config.js | 4 ++--
10 files changed, 85 insertions(+), 12 deletions(-)
create mode 100644 ebts-ui/src/views/cas-login.vue
create mode 100644 ebts-ui/src/views/cas-logout.vue
diff --git a/ebts-ui/.env.development b/ebts-ui/.env.development
index e27f265..098b29a 100644
--- a/ebts-ui/.env.development
+++ b/ebts-ui/.env.development
@@ -3,7 +3,7 @@ ENV = 'development'
# EBTS/开发环境
#VUE_APP_BASE_API = '/dev-api'
-VUE_APP_BASE_API = 'http://192.168.190.67'
+VUE_APP_BASE_API = 'http://192.168.190.67/dev-api'
#VUE_APP_BASE_API = 'http://sistapi.hchyun.cn/dev-api'
# 路由懒加载
diff --git a/ebts-ui/.env.staging b/ebts-ui/.env.staging
index 4280611..e9f4593 100644
--- a/ebts-ui/.env.staging
+++ b/ebts-ui/.env.staging
@@ -5,4 +5,5 @@ ENV = 'staging'
# EBTS/测试环境
#VUE_APP_BASE_API = '/dev-api'
-VUE_APP_BASE_API = 'http://sistapi.hchyun.cn/dev-api'
+#VUE_APP_BASE_API = 'http://sistapi.hchyun.cn/dev-api'
+VUE_APP_BASE_API = 'http://192.168.190.67/dev-api'
diff --git a/ebts-ui/src/api/login.js b/ebts-ui/src/api/login.js
index 869cd9f..83c9d07 100644
--- a/ebts-ui/src/api/login.js
+++ b/ebts-ui/src/api/login.js
@@ -37,4 +37,19 @@ export function getCodeImg() {
url: '/captchaImage',
method: 'get'
})
-}
\ No newline at end of file
+}
+
+// 获取验证码
+export function casLogin() {
+ return request({
+ url: '/cas-login',
+ method: 'get'
+ })
+}
+// 获取验证码
+export function casLogout() {
+ return request({
+ url: '/logout',
+ method: 'get'
+ })
+}
diff --git a/ebts-ui/src/permission.js b/ebts-ui/src/permission.js
index 9f4f390..dd9eeba 100644
--- a/ebts-ui/src/permission.js
+++ b/ebts-ui/src/permission.js
@@ -4,11 +4,12 @@ import { Message } from 'element-ui'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import { getToken } from '@/utils/auth'
+import axios from "axios";
NProgress.configure({ showSpinner: false })
-const whiteList = ['/login', '/auth-redirect', '/bind', '/register']
+const whiteList = ['/login', '/auth-redirect', '/bind', '/register','/cas-login','logout']
const defaultSettings = require('@/settings.js')
router.beforeEach((to, from, next) => {
@@ -50,17 +51,20 @@ router.beforeEach((to, from, next) => {
}
}
} else {
- debugger
+ // debugger
// 没有token
if (whiteList.indexOf(to.path) !== -1) {
// 在免登录白名单,直接进入
next()
} else {
// next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
+ // axios.get("http://192.168.190.67/dev-api/cas-login").then(res=>{
+ //
+ // })
// NProgress.done()
- if (!defaultSettings.casEnable) {
- next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
- }
+ // if (!defaultSettings.casEnable) {
+ // next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
+ // }
//开启cas
if (defaultSettings.casEnable) {
window.location.href = defaultSettings.casloginUrl // 否则全部重定向到登录页
diff --git a/ebts-ui/src/router/index.js b/ebts-ui/src/router/index.js
index 241a686..7b8935a 100644
--- a/ebts-ui/src/router/index.js
+++ b/ebts-ui/src/router/index.js
@@ -42,6 +42,16 @@ export const constantRoutes = [
component: (resolve) => require(['@/views/login'], resolve),
hidden: true
},
+ {
+ path: '/cas-login',
+ component: (resolve) => require(['@/views/cas-login.vue'], resolve),
+ hidden: true
+ },
+ {
+ path: '/logout',
+ component: (resolve) => require(['@/views/cas-logout.vue'], resolve),
+ hidden: true
+ },
{
path: '/404',
component: (resolve) => require(['@/views/error/404'], resolve),
diff --git a/ebts-ui/src/settings.js b/ebts-ui/src/settings.js
index 928efe6..7dda2e8 100644
--- a/ebts-ui/src/settings.js
+++ b/ebts-ui/src/settings.js
@@ -8,13 +8,13 @@ module.exports = {
/**
* 单点登录url
*/
- casloginUrl: 'https://cas.swjtu.edu.cn/authserver/login?service=http://192.168.190.67/dev-api/dev',
+ casloginUrl: 'https://cas.swjtu.edu.cn/authserver/login?service=http://192.168.190.67/dev-api/cas-login',
/**
* 单点登出url
*/
// caslogoutUrl: 'http://localhost:8888/cas/logout?service=http://localhost:8080',
- caslogoutUrl: 'https://cas.swjtu.edu.cn/authserver/logout?service=http://192.168.190.67',
+ caslogoutUrl: 'https://cas.swjtu.edu.cn/authserver/logout?service=http://192.168.190.67/admin/logout',
/**
diff --git a/ebts-ui/src/utils/request.js b/ebts-ui/src/utils/request.js
index 30c5ddd..740aa23 100644
--- a/ebts-ui/src/utils/request.js
+++ b/ebts-ui/src/utils/request.js
@@ -4,6 +4,7 @@ import store from '@/store'
import { getToken } from '@/utils/auth'
import errorCode from '@/utils/errorCode'
+axios.defaults.withCredentials = true;//这行代码是必须的
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
const defaultSettings = require('@/settings')
// 创建axios实例
diff --git a/ebts-ui/src/views/cas-login.vue b/ebts-ui/src/views/cas-login.vue
new file mode 100644
index 0000000..710759d
--- /dev/null
+++ b/ebts-ui/src/views/cas-login.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
diff --git a/ebts-ui/src/views/cas-logout.vue b/ebts-ui/src/views/cas-logout.vue
new file mode 100644
index 0000000..df18f25
--- /dev/null
+++ b/ebts-ui/src/views/cas-logout.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/ebts-ui/vue.config.js b/ebts-ui/vue.config.js
index 69653f3..34ffece 100644
--- a/ebts-ui/vue.config.js
+++ b/ebts-ui/vue.config.js
@@ -17,8 +17,8 @@ module.exports = {
// 部署生产环境和开发环境下的URL。
// 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.hchyun.com/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.hchyun.com/admin/,则设置 baseUrl 为 /admin/。
- // publicPath: "/admin/",
- publicPath: "/",
+ publicPath: "/admin/",
+ // publicPath: "/",
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
outputDir: 'dist',
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)