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) 的;(项目打包之后,静态资源会放在这个文件夹下)