我正在尝试将 EasyAuth (aad) 与目前位于“localhost:8080”上的 SPA 以及托管在 Azure 中的 Azure Function ({function-app}.azurewebsites.net。目的是为了SPA 调用 Azure 函数上的安全端点。因此,我将 Azure 函数注册为 AD 中的应用程序,并且 SPA 中的身份验证重定向到 Azure 函数 EasyAuth 端点似乎正在工作,但重定向回post_login_redirect_url
不是通过 localhost SPA 。
我将http://localhost:8080
作为允许的重定向 URI 添加到 AAD 注册应用程序中。但是,如果我完全限定了我被重定向回的 URL {function-host}/.auth/login/done
。是否期望 SPA 在与 azure 函数相同的主机名下运行,或者有没有办法配置设置以允许 SPA 主机的任何 URL?
行为
就行为期间的 HTTP 数据而言,一旦登录成功.auth/login/aad/callback
,在重定向到默认完成页面并停止之前加载以下内容。
- 响应头
Location
= {function-host} /.auth/login/done
- 表格数据:
state
= http://localhost:8080code
= 授权码id_token
= 授权令牌
我如何从 SPA 中调用它
function processAuthCheck(xmlhttp) {
if (xmlhttp.status == 401) {
url = "https://{function-app}.azurewebsites.net/.auth/login/aad?"
+ "post_login_redirect_url=" + encodeURI("http://localhost:8080");
window.location = url;
} else if (xmlhttp.status != 200) {
alert("There is an error with this service!");
return;
}
var result = JSON.parse(xmlhttp.responseText);
console.log(JSON.stringify(result));
return;
};