82 lines
2.3 KiB
Vue
82 lines
2.3 KiB
Vue
<template>
|
||
<view class="container">
|
||
<web-view :src="url"></web-view>
|
||
</view>
|
||
</template>
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
//url:"https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=code&client_id=b4ba794c-cd0d-4033-924e-ace80b93d045&redirect_uri=https://hostcrmapp.mgm.mo/sso_callback/login&scope=openid%20profile%20email&response_mode=query",
|
||
//url:"https://adserver.willtechmacau.com/adfs/oauth2/authorize?response_type=code&client_id=0fd2d7dd-35f5-47b5-a1e2-edc13e12a5cd&redirect_uri=https://hostcrmapp.mgm.mo/sso_callback/login&scope=openid&state=STATE",
|
||
url:"https://adfs.mgm.mo/adfs/ls/IdpInitiatedSignOn?loginToRp="+encodeURIComponent('mgm_mobilecrm_app'),
|
||
intervalId:null,
|
||
newUrl:'',
|
||
siteData:null
|
||
}
|
||
},
|
||
onLoad(options) {
|
||
if (options && options.url) {
|
||
this.url = options.url;
|
||
}
|
||
|
||
this.listenUrl()
|
||
},
|
||
onShow() {
|
||
//console.log("azureLogin.vue:onShow()");
|
||
/*setTimeout(()=> {
|
||
this.checkArguments();
|
||
}, 10000);*/
|
||
this.siteData = uni.getStorageSync("siteData");
|
||
},
|
||
methods: {
|
||
listenUrl() {
|
||
var that = this;
|
||
var count = 0;
|
||
this.intervalId = setInterval(() => {
|
||
var currentUrl = that.getCurrentUrl();
|
||
that.newUrl = currentUrl;
|
||
var code = that.getCurrentQueryString(currentUrl, 'SAMLResponse');
|
||
//var code = that.getCurrentQueryString(currentUrl, 'code');
|
||
|
||
//uni.$u.toast(that.newUrl,10000);
|
||
|
||
//console.log('获取到的code:', code)
|
||
if(currentUrl.indexOf('/login')!=-1){
|
||
if (code){
|
||
clearInterval(that.intervalId);
|
||
uni.redirectTo({
|
||
url:'/pages/login/login?code='+encodeURIComponent(code)
|
||
})
|
||
}
|
||
}
|
||
|
||
}, 1000);
|
||
},
|
||
getCurrentQueryString(url, name) {
|
||
var queryString = url.substring(url.indexOf('?'));
|
||
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
|
||
var r = queryString.substr(1).match(reg);
|
||
if (r != null) {
|
||
return unescape(r[2]);
|
||
}
|
||
|
||
return null;
|
||
},
|
||
getCurrentUrl(){
|
||
var pages = getCurrentPages();
|
||
var page = pages[pages.length - 1];
|
||
var currentWebview = page.$getAppWebview();
|
||
var url = currentWebview.children()[0].getURL();
|
||
console.log("=======当前地址======", url);
|
||
|
||
return url;
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style>
|
||
|
||
</style>
|