首页 文章

Azure在隐式流登录期间使用错误的回调URL

提问于
浏览
2

我目前正在努力解决天蓝色活动目录隐式流oauth身份验证中的一个奇怪问题 . 我已经使用msal.js实现了一个spa webapp,以便将用户登录到他们的microsoft accont .

userAgentApplication的执行如下所示:

userAgentApplication = new
Msal.UserAgentApplication(CLIENT_ID,空,函数(errorDes,令牌错误,tokenType)
{
if(error){
的console.log(JSON.stringify(误差));
返回;
}
},{redirectUri:'https://example.com/app/msalCallback.html'});

当他们点击登录时执行的是一段代码:

logInPopup = function(){
var uaa = userAgentApplication;
返回新的Promise(函数(解析,拒绝){

uaa.loginPopup([
'https://graph.microsoft.com/user.read'
]) . then(function(token){
//登录成功
的console.log(令牌);
var user = uaa.getUser();
的console.log(JSON.stringify(用户));
解决(用户);
},function(error){
的console.log(JSON.stringify(误差));
拒绝(误差);
});
})
}

弹出窗口出现,用户尝试登录但出现以下错误:

Microsoft account is experiencing technical problems. Please try again later.

在url中,错误参数字符串是:

error_description =输入参数'redirect_uri'的提供值无效预期值为'https://login.live.com/oauth20_desktop.srf'或与此客户端应用程序注册的重定向URI匹配的URL .

经过进一步的研究,我发现虽然我配置了重定向uri

https://example.com/app/msalCallback.html

(我在申请注册页面上确认是真的)

登录弹出页面中 /oauth2/v2.0/authorise url的redirect_uri是:

redirect_uri=https://example.com/app/

这很奇怪,但上面的uri不是随机的 . 它实际上是先前已注册但现在已删除的具有相同名称的应用程序的回调uri .

进一步调查表明,当我配置Msal使用旧的redirect_uri登录时 .

我是新鲜的想法 . 它看起来像是天蓝网络中的一个错误,但想知道是否有其他人遇到过这个问题,或者至少指出我正朝着与azure联系寻找解决方案的正确方向 .

提前致谢

1 回答

  • 1

    我仔细查看了msal.js文档后发现问题的原因我发现我正在设置redirectUri错误 . 正确的方法如下:

    var userAgentApplication = new
    Msal.UserAgentApplication(CLIENT_ID,空,函数(errorDes,令牌错误,tokenType)
    {
    if(error){
    的console.log(JSON.stringify(误差));
    返回;
    }
    });

    userAgentApplication.redirectUri ='https://example.com/app/msalCallback.html'

    希望有所帮助 .

    问候

相关问题