mirror of
https://github.com/jeecgboot/JeecgBoot.git
synced 2026-02-05 18:15:28 +08:00
JeecgBoot 2.4.6版本发布
This commit is contained in:
@ -35,18 +35,18 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Vue from 'vue'
|
||||
import { ACCESS_TOKEN ,ENCRYPTED_STRING} from "@/store/mutation-types"
|
||||
import ThirdLogin from './third/ThirdLogin'
|
||||
import LoginSelectTenant from "./LoginSelectTenant"
|
||||
import TwoStepCaptcha from '@/components/tools/TwoStepCaptcha'
|
||||
import { encryption , getEncryptedString } from '@/utils/encryption/aesEncrypt'
|
||||
import { timeFix } from "@/utils/util"
|
||||
import Vue from 'vue'
|
||||
import { ACCESS_TOKEN, ENCRYPTED_STRING } from '@/store/mutation-types'
|
||||
import ThirdLogin from './third/ThirdLogin'
|
||||
import LoginSelectTenant from './LoginSelectTenant'
|
||||
import TwoStepCaptcha from '@/components/tools/TwoStepCaptcha'
|
||||
import { getEncryptedString } from '@/utils/encryption/aesEncrypt'
|
||||
import { timeFix } from '@/utils/util'
|
||||
|
||||
import LoginAccount from './LoginAccount'
|
||||
import LoginPhone from './LoginPhone'
|
||||
import LoginAccount from './LoginAccount'
|
||||
import LoginPhone from './LoginPhone'
|
||||
|
||||
export default {
|
||||
export default {
|
||||
components: {
|
||||
LoginSelectTenant,
|
||||
TwoStepCaptcha,
|
||||
|
||||
@ -50,12 +50,11 @@
|
||||
|
||||
<script>
|
||||
|
||||
import Vue from 'vue'
|
||||
import { getAction,putAction } from '@/api/manage'
|
||||
import { USER_INFO } from "@/store/mutation-types"
|
||||
import store from './Login'
|
||||
import Vue from 'vue'
|
||||
import { putAction } from '@/api/manage'
|
||||
import { USER_INFO } from '@/store/mutation-types'
|
||||
|
||||
export default {
|
||||
export default {
|
||||
name: 'LoginSelectTenant',
|
||||
data(){
|
||||
return {
|
||||
@ -111,18 +110,19 @@
|
||||
this.isMultiDepart = false
|
||||
}
|
||||
},
|
||||
bizTenant(ids){
|
||||
if(!ids || ids.length==0){
|
||||
this.isMultiTenant = false
|
||||
} else if(ids.indexOf(',')<0){
|
||||
this.tenant_id = ids;
|
||||
this.isMultiTenant = false
|
||||
}else{
|
||||
this.visible = true
|
||||
this.isMultiTenant = true
|
||||
getAction('/sys/tenant/queryList', {ids: ids}).then(res=>{
|
||||
this.tenantList = res.result
|
||||
})
|
||||
bizTenantList(loginResult) {
|
||||
let tenantList = loginResult.tenantList
|
||||
if (Array.isArray(tenantList)) {
|
||||
if (tenantList.length === 0) {
|
||||
this.isMultiTenant = false
|
||||
} else if (tenantList.length === 1) {
|
||||
this.tenant_id = tenantList[0].id
|
||||
this.isMultiTenant = false
|
||||
} else {
|
||||
this.visible = true
|
||||
this.isMultiTenant = true
|
||||
this.tenantList = tenantList
|
||||
}
|
||||
}
|
||||
},
|
||||
show(loginResult){
|
||||
@ -131,8 +131,7 @@
|
||||
|
||||
let user = Vue.ls.get(USER_INFO)
|
||||
this.username = user.username
|
||||
let ids = user.relTenantIds
|
||||
this.bizTenant(ids);
|
||||
this.bizTenantList(loginResult);
|
||||
|
||||
if(this.visible===false){
|
||||
this.$store.dispatch('saveTenant', this.tenant_id);
|
||||
|
||||
130
ant-design-vue-jeecg/src/views/user/oauth2/OAuth2Login.vue
Normal file
130
ant-design-vue-jeecg/src/views/user/oauth2/OAuth2Login.vue
Normal file
@ -0,0 +1,130 @@
|
||||
<template>
|
||||
<div>
|
||||
<div id="loader-wrapper">
|
||||
<div id="loader"></div>
|
||||
<div class="loader-section section-left"></div>
|
||||
<div class="loader-section section-right"></div>
|
||||
<div class="load_title">正在登录 JeecgBoot 低代码平台,请耐心等待</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapActions } from 'vuex'
|
||||
import { isOAuth2AppEnv, timeFix } from '@/utils/util'
|
||||
import { INDEX_MAIN_PAGE_PATH } from '@/store/mutation-types'
|
||||
|
||||
export default {
|
||||
name: 'OAuth2Login',
|
||||
data() {
|
||||
return {
|
||||
env: {
|
||||
thirdApp: false,
|
||||
wxWork: false,
|
||||
dingtalk: false,
|
||||
},
|
||||
}
|
||||
},
|
||||
beforeCreate() {
|
||||
// 如果当前 不是 OAuth2APP环境,就重定向到 /user/login 页面
|
||||
if (!isOAuth2AppEnv()) {
|
||||
this.$router.replace({path: '/user/login'})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.checkEnv()
|
||||
this.doOAuth2Login()
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['ThirdLogin']),
|
||||
|
||||
/** 检测当前的环境 */
|
||||
checkEnv() {
|
||||
// 判断当时是否是企业微信环境
|
||||
if (/wxwork/i.test(navigator.userAgent)) {
|
||||
this.env.thirdApp = true
|
||||
this.env.wxWork = true
|
||||
}
|
||||
// 判断当时是否是钉钉环境
|
||||
if (/dingtalk/i.test(navigator.userAgent)) {
|
||||
this.env.thirdApp = true
|
||||
this.env.dingtalk = true
|
||||
}
|
||||
},
|
||||
|
||||
/** 进行OAuth2登录操作 */
|
||||
doOAuth2Login() {
|
||||
if (this.env.thirdApp) {
|
||||
// 判断是否携带了Token,是就说明登录成功
|
||||
if (this.$route.query.oauth2LoginToken) {
|
||||
this.thirdType = this.$route.query.thirdType
|
||||
let token = this.$route.query.oauth2LoginToken
|
||||
this.doThirdLogin(token)
|
||||
} else if (this.env.wxWork) {
|
||||
this.doWechatEnterpriseOAuth2Login()
|
||||
} else if (this.env.dingtalk) {
|
||||
this.doDingTalkOAuth2Login()
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 根据token执行登录
|
||||
doThirdLogin(token) {
|
||||
let param = {}
|
||||
param.thirdType = this.thirdType
|
||||
param.token = token
|
||||
this.ThirdLogin(param).then(res => {
|
||||
if (res.success) {
|
||||
this.loginSuccess()
|
||||
} else {
|
||||
this.requestFailed(res)
|
||||
}
|
||||
})
|
||||
},
|
||||
loginSuccess() {
|
||||
// 登陆成功,重定向到主页
|
||||
this.$router.replace({path: INDEX_MAIN_PAGE_PATH})
|
||||
// TODO 这个提示是否还需要?
|
||||
this.$notification.success({
|
||||
message: '欢迎',
|
||||
description: `${timeFix()},欢迎回来`,
|
||||
})
|
||||
},
|
||||
requestFailed(err) {
|
||||
this.$error({
|
||||
title: '登录失败',
|
||||
content: ((err.response || {}).data || {}).message || err.message || '请求出现错误,请稍后再试',
|
||||
okText: '重新登陆',
|
||||
onOk() {
|
||||
window.location.reload()
|
||||
},
|
||||
onCancel() {
|
||||
window.location.reload()
|
||||
},
|
||||
})
|
||||
},
|
||||
|
||||
/** 企业微信OAuth2登录 */
|
||||
doWechatEnterpriseOAuth2Login() {
|
||||
this.sysOAuth2Login('wechat_enterprise')
|
||||
},
|
||||
|
||||
/** 钉钉OAuth2登录 */
|
||||
doDingTalkOAuth2Login() {
|
||||
this.sysOAuth2Login('dingtalk')
|
||||
},
|
||||
|
||||
/** 后台构造oauth2登录地址 */
|
||||
sysOAuth2Login(source) {
|
||||
let url = `${window._CONFIG['domianURL']}/sys/thirdLogin/oauth2/${source}/login`
|
||||
url += `?state=${encodeURIComponent(window.location.origin)}`
|
||||
window.location.href = url
|
||||
},
|
||||
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user