我已经使用 WL api 实现了单点登录,但直到最近我才意识到我需要在此基础上调用 mobileService.login 才能使用 Azure 移动服务的良好身份验证功能。
我跟着这个教程
并添加了这段代码:
var login = function () {
return new WinJS.Promise(function (complete) {
WL.init();
WL.login({ scope: ["wl.signin", "wl.basic", "wl.birthday", "wl.emails"] }).then(function (result) {
session = result.session;
WinJS.Promise.join([
WL.api({ path: "me", method: "GET" }),
mobileService.login("microsoftaccount", session.authentication_token)
]).done(function (results) {
var profile = results[0];
var mobileServicesUser = results[1];
var title = "Welcome " + profile.first_name + "!";
var message = "You are now logged in as: " + mobileServicesUser.userId;
var dialog = new Windows.UI.Popups.MessageDialog(message, title);
dialog.showAsync().done(complete);
});
}, function (error) {
session = null;
var dialog = new Windows.UI.Popups.MessageDialog("You must log in.", "Login Required");
dialog.showAsync().done(complete);
});
});
}
但是在这条线上
mobileService.login("microsoftaccount", session.authentication_token)
我的 session.authentication_token 未定义。(我有一个 access_token)
如果我不通过令牌,每次启动应用程序时都会提示我登录,这违背了集成登录的目的。
有任何想法吗?