From ebb601aa925630a4513ea557bc80e5eb0d315202 Mon Sep 17 00:00:00 2001 From: xiayt Date: Mon, 22 Aug 2022 12:07:45 +0800 Subject: [PATCH] feat:微信小程序单点登录对接 --- src/views/Service/ServiceKQ.vue | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------- 1 file changed, 63 insertions(+), 45 deletions(-) diff --git a/src/views/Service/ServiceKQ.vue b/src/views/Service/ServiceKQ.vue index 3d144ff..af54af7 100644 --- a/src/views/Service/ServiceKQ.vue +++ b/src/views/Service/ServiceKQ.vue @@ -6,54 +6,58 @@ import ServiceBasekq from './ServiceBaseKQ.vue' export default { name: 'ServiceKQ', - data () { + data() { return { centerNo: '', } }, - mounted () { + mounted() { console.log('xst mounted') this.checkAuth() - }, - activated () { + activated() { console.log('KQ activated') this.checkAuth() }, methods: { - checkAuth () { - let centerNo = localStorage.getItem('centerNo'); - let ticket = this.common.getUrlParam('ticket'); + checkAuth() { + let centerNo = localStorage.getItem('centerNo') + let ticket = this.common.getUrlParam('ticket') //浙里办app访问 + let ticketId = this.common.getUrlParam('ticketId') //浙里办微信小程序访问 + alert(location.href) + alert(ticketId) if (centerNo) { + alert('有中台编号:' + centerNo) this.centerNo = centerNo - localStorage.setItem('centerNo', centerNo); + localStorage.setItem('centerNo', centerNo) this.getUserInfo() } else if (ticket) { this.getCenterByTicket(ticket) + } else if (ticketId) { + alert('调用getCenterByTicket') + this.getCenterByTicketId(ticketId) } else { const sUserAgent = window.navigator.userAgent.toLowerCase() - const dtdreamweb = sUserAgent.indexOf("dtdreamweb") > -1 - const miniprogram = sUserAgent.indexOf("miniprogram") > -1 && sUserAgent.indexOf("alipay") > -1 + const dtdreamweb = sUserAgent.indexOf('dtdreamweb') > -1 + const miniprogram = sUserAgent.indexOf('miniprogram') > -1 && sUserAgent.indexOf('alipay') > -1 if (dtdreamweb) { // alert('浙里办') - window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=hswsy`; - } - else if (miniprogram) { + window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=hswsy` + } else if (miniprogram) { // alert('支付宝') - window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=hswsy`; - } - else { + window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=hswsy` + } else { alert('非浙里办渠道访问,显示测试用户数据') console.log('非浙里办渠道访问,显示测试用户数据') this.centerNo = '2021111017103639979048000010279' - localStorage.setItem('centerNo', '2021111017103639979048000010279'); + localStorage.setItem('centerNo', '2021111017103639979048000010279') this.getUserInfo() } } }, // 通过ticket获取centerNo - getCenterByTicket (ticket) { + getCenterByTicket(ticket) { this.mgop({ api: 'mgop.sz.hswsy.getCenterNo', // 必须 host: 'https://mapi.zjzwfw.gov.cn/', @@ -64,48 +68,62 @@ export default { // 'isTestUrl': '1' }, data: { - "ticket": ticket, + ticket: ticket, }, - onSuccess: res => { - console.log('通过ticket获取centerNo成功', res) + onSuccess: (res) => { + console.log('通过ticket获取centerNo成功:', res) + alert('通过ticket获取centerNo成功:' + res.data.message) if (res.data.code == 200) { this.centerNo = res.data.message - localStorage.setItem('centerNo', res.data.message); + localStorage.setItem('centerNo', res.data.message) this.getUserInfo() } else { this.reLoad() } }, - onFail: err => { - console.log('通过ticket获取centerNo成功失败', err) + onFail: (err) => { + alert('通过ticket获取centerNo失败:' + JSON.stringify(err)) + console.log('通过ticket获取centerNo成功失败:', JSON.stringify(err)) this.reLoad() + }, + }) + }, + // 通过ticketId获取centerNo + getCenterByTicketId(ticketId) { + this.yxAxios.get(`${this.proxyUrl}/api/zlb/auth/getCenterNoWx?ticket=${ticketId}`).then((res) => { + alert('res:', JSON.stringify(res)) + if (res.data.code == 200) { + this.centerNo = res.data.message + localStorage.setItem('centerNo', res.data.message) + this.getUserInfo() + } else { + alert('通过ticketId获取centerNo失败:' + JSON.stringify(res.data.message)) + console.log('通过ticket获取centerNo成功失败:', JSON.stringify(res.data.message)) + // this.reLoad() } }) }, - reLoad () { + reLoad() { console.log('reload') ZWJSBridge.confirm({ - "title": "警告", - "buttonLabels": [ - "重新载入" - ], - "message": "用户身份验证失败,请重新加载" - }).then(res => { + title: '警告', + buttonLabels: ['重新载入'], + message: '用户身份验证失败,请重新加载', + }).then((res) => { const sUserAgent = window.navigator.userAgent.toLowerCase() - const dtdreamweb = sUserAgent.indexOf("dtdreamweb") > -1 - const miniprogram = sUserAgent.indexOf("miniprogram") > -1 && sUserAgent.indexOf("alipay") > -1 + const dtdreamweb = sUserAgent.indexOf('dtdreamweb') > -1 + const miniprogram = sUserAgent.indexOf('miniprogram') > -1 && sUserAgent.indexOf('alipay') > -1 if (dtdreamweb) { // alert('浙里办') - window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=hswsy`; - } - else if (miniprogram) { + window.location.href = `https://puser.zjzwfw.gov.cn/sso/mobile.do?action=oauth&scope=1&servicecode=hswsy` + } else if (miniprogram) { // alert('支付宝') - window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=hswsy`; + window.location.href = `https://puser.zjzwfw.gov.cn/sso/alipay.do?action=ssoLogin&servicecode=hswsy` } }) }, // 获取用户信息 - getUserInfo: function () { + getUserInfo: function() { this.mgop({ api: 'mgop.sz.hswsy.getPortalUserByNum', // 必须 // host: 'https://mapi.zjzwfw.gov.cn/', @@ -116,22 +134,22 @@ export default { // 'isTestUrl': '1' }, data: { - "userNum": this.centerNo + userNum: this.centerNo, }, - onSuccess: res => { + onSuccess: (res) => { console.log('getUserInfo', res) if (res.data.code == 200) { localStorage.setItem('userInfo', JSON.stringify(res.data.data.userInfo)) } }, - onFail: err => { + onFail: (err) => { console.log('err', err) - } - }); + }, + }) }, }, components: { - ServiceBasekq - } + ServiceBasekq, + }, } -- libgit2 0.21.0