我正在使用 Cordova Plugin Advance HTTP 从我的服务器获取用户令牌,然后从该令牌创建一个 url 以让我当前的用户登录到他的帐户配置文件。我的代码如下:
teetime.page.ts
ionViewWillEnter(){
this.callCloudFunction().then( data => {
this.urlSafe= this.sanitizer.bypassSecurityTrustResourceUrl(this.url);
this.canRender = true;
});
}
async callCloudFunction() {
var memberTokenUrl = 'https://www.example.com/WebResAPI/Api/User/GetNewUserTokenByMemberNumber?authToken=&userToken=' + token + '&clubFriendlyName=MyClub&memberNumber='
var memberToken = await this.getMemberToken(memberTokenUrl);
console.log("Member Token: " + memberToken);
//Create Login URL
this.url = 'https://www.example.com/WebRes/Club/MyClub/LoginWithToken/' + memberToken;
console.log("Login URL: " + this.url);
//Hide Loading Container
await this.loading.dismiss();
return this.url;
}
//Get Member Token
getMemberToken(memberTokenUrl){
return new Promise((resolve, reject) => {
this.http.get(memberTokenUrl, {}, {})
.then(data => {
var memberTok = JSON.parse(data.data).Value ;
resolve(memberTok);
})
.catch(error => {
console.log(error.error);
});
});
}
teetimes.page.html
<ion-content>
<div style="overflow:auto;-webkit-overflow-scrolling:touch" *ngIf="canRender">
<iframe [src]="urlSafe" style="width: 100%; height: 100vh;" frameborder="0"></iframe>
</div>
</ion-content>
ios控制台日志
[Log] Member Token: 4PHZjQUkGETmF4M9lm7TppjoMhwqHudyhjRGZmyBxY7gCTEgazGIKWekRRLo (cordova.98fc7fcb7c020c1504f6.js, line 1) [Log] Login URL: https://www.example.com/WebRes/Club/MyClub/LoginWithToken/4PHZjQUkGETmF4M9lm7TppjoMhwqHudyhjRGZmyBxY7gCTEgazGIKWekRRLo (cordova.98fc7fcb7c020c1504f6.js, line 1)
我能够成功地从我的服务器获取令牌并且能够成功地形成 URL 但这里的问题是这个带有用户令牌的形成的 URL 让我在我的 android 设备中完美登录但它没有在 iOS 中打开我的用户帐户. 我能够在 iOS 中完美地查看所有日志,并且我能够获取令牌并形成 url,但它的作用是,它将我带到注销的主页,而不是向我显示我的登录帐户。
但是,如果我单击控制台日志中的登录 URL,它确实会将我带到我在 Safari 中登录的用户帐户。
知道我在这里做错了什么吗?它确实在 Android 中完美运行,它确实让我自动登录到我的用户帐户,但这在 iOS 中不起作用,而是将我带到我网站的主页。
