我有一个网络应用程序,其客户端是用 Javascript 开发的。我已通过在 Portal.azure.com 上进行配置来为我的应用程序启用 Azure AD 登录。然后,每次加载此应用程序时,用户都需要登录(如果尚未登录)。 我希望在客户端有一些 Javascript,以便应用程序知道用户名。这是我的代码。
<script src="https://secure.aadcdn.microsoftonline-p.com/lib/1.0.11/js/adal.min.js"></script>
<script type="text/javascript">
var authContext = new AuthenticationContext({
clientId: 'xxxx-xxx-xxxx',
postLogoutRedirectUri: window.location
});
var user = authContext.getCachedUser();
if (user) {
window.alert("Signed in as " + user.userName);
} else{
window.alert("Failed to get the user information");
}
</script>
但是,变量user始终为空。有人可以帮忙吗?
最佳答案
您似乎正在使用 azure 应用服务的“身份验证/授权”功能,并且提供的身份是 azure ad 。如果您想从客户端访问 token (例如浏览器中的 JavaScript),或者如果您想获取有关登录用户的更丰富的信息,您还可以向 /发送经过身份验证的 GET 请求。 auth/me
端点。下面获取用户声明的 Javascript 代码供您引用:
<script type="text/javascript">
$(document).ready(function ()
{
$.get("https://xxxxxx.azurewebsites.net/.auth/me", function (data, status) {
for (var key in data[0]["user_claims"]) {
var obj = data[0]["user_claims"][key];
alert(obj["typ"]); //claim type in user_claims
alert(obj["val"]) //claim value in user_claims
}
});
});
</script>
关于javascript - 如何从 Javascript 检索 Azure Active Directory 登录的用户信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44556536/