增加getOneIDToken方法

This commit is contained in:
yangbin 2024-07-25 22:12:00 +08:00
parent 79f27be41d
commit 4a86455458
3 changed files with 63 additions and 56 deletions

View File

@ -9,6 +9,15 @@ export function login(data) {
})
}
// ONEID登录功能通过code获取对应的用户token
export function getOneIdToken(code) {
return request({
url: '/WRD-admin/oneIDLogin',
method: 'get',
params: { code }
})
}
export function getInfo() {
return request({
url: '/WRD-admin/sys/user/info',

View File

@ -8,7 +8,7 @@ import getPageTitle from '@/utils/get-page-title'
NProgress.configure({ showSpinner: false }) // NProgress Configuration
const whiteList = ['/login'] // no redirect whitelist
const whiteList = ['/login', '/callback'] // no redirect whitelist
router.beforeEach(async(to, from, next) => {
// start progress bar
@ -21,7 +21,7 @@ router.beforeEach(async(to, from, next) => {
const hasToken = getToken()
if (hasToken) {
if (to.path === '/login') {
if (to.path === '/login' || to.path === '/callback') {
// if is logged in, redirect to the home page
next({ path: '/nav' })
NProgress.done()
@ -47,7 +47,6 @@ router.beforeEach(async(to, from, next) => {
}
} else {
/* has no token*/
if (whiteList.indexOf(to.path) !== -1) {
// in the free login whitelist, go directly
next()

View File

@ -1,59 +1,58 @@
<template>
<div class="main-box" />
</template>
<div class="main-box" />
</template>
<script>
import { mapGetters } from 'vuex'
import { getOneIdToken } from '@/api/user'
export default {
name: 'CallBack',
computed: {
...mapGetters([
'name'
])
},
async mounted() {
debugger
// URL code
// const urlParams = new URLSearchParams(window.location.hash.substring(1))
// const code = urlParams.get('code')
// alert('callback page')
// this.$router.push({ path: '/nav' })
const urlParams = new URLSearchParams(window.location.search)
const code = urlParams.get('code')
// code
if (code) {
// code
const response = await getOneIdToken(code)
console.log(response)
if (response) {
// console.log('response.Token:' + response.Token)
// token
this.$store.dispatch('user/commitToken', response)
//
// resetRouter()
// console.log(this.$store.state.user, this.$store.state.token)
this.$router.push({ path: '/nav' })
} else {
console.log('No token found with code')
// window.location.href = 'https://api.oneid.siemens.com.cn/api/bff/v1.2/developer/ciam/oauth/authorize?client_id=1b867769c8cb221fb7fdb0f8beba6138TwXkI4mX8um&response_type=code&redirect_uri=http://csdc.siemens.com.cn:8001/#/callback&scope=openid phone email profile user:ciam:commonapi'
}
<script>
import { mapGetters } from 'vuex'
import { getOneIdToken } from '@/api/user'
export default {
name: 'CallBack',
computed: {
...mapGetters([
'name'
])
},
async mounted() {
debugger
// URL code
// const urlParams = new URLSearchParams(window.location.hash.substring(1))
// const code = urlParams.get('code')
// alert('callback page')
// this.$router.push({ path: '/nav' })
const urlParams = new URLSearchParams(window.location.search)
const code = urlParams.get('code')
// code
if (code) {
// code
const response = await getOneIdToken(code)
console.log(response)
if (response) {
// console.log('response.Token:' + response.Token)
// token
this.$store.dispatch('user/commitToken', response)
//
// resetRouter()
// console.log(this.$store.state.user, this.$store.state.token)
this.$router.push({ path: '/nav' })
} else {
// code,
console.error('No code found in URL parameters.')
console.log('No token found with code')
// window.location.href = 'https://api.oneid.siemens.com.cn/api/bff/v1.2/developer/ciam/oauth/authorize?client_id=1b867769c8cb221fb7fdb0f8beba6138TwXkI4mX8um&response_type=code&redirect_uri=http://csdc.siemens.com.cn:8001/#/callback&scope=openid phone email profile user:ciam:commonapi'
// window.location.href = 'https://oneid.siemens.com.cn/frontend/login?idaasAppId=siemens_ciam2'
}
} else {
// code,
console.error('No code found in URL parameters.')
// window.location.href = 'https://api.oneid.siemens.com.cn/api/bff/v1.2/developer/ciam/oauth/authorize?client_id=1b867769c8cb221fb7fdb0f8beba6138TwXkI4mX8um&response_type=code&redirect_uri=http://csdc.siemens.com.cn:8001/#/callback&scope=openid phone email profile user:ciam:commonapi'
// window.location.href = 'https://oneid.siemens.com.cn/frontend/login?idaasAppId=siemens_ciam2'
}
}
</script>
<style lang="scss" scoped>
.main-box {
background-image: url("../../assets/dashboard-background.png");
background-size: 100% 100%;
background-repeat: no-repeat;
height: 100vh;
}
</style>
}
</script>
<style lang="scss" scoped>
.main-box {
background-image: url("../../assets/dashboard-background.png");
background-size: 100% 100%;
background-repeat: no-repeat;
height: 100vh;
}
</style>