javascript - 如何从 Javascript 检索 Azure Active Directory 登录的用户信息?

标签 javascript azure web-applications azure-web-app-service azure-active-directory

我有一个网络应用程序,其客户端是用 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/

相关文章:

javascript - 如何用react删除元素? (基本的 react 查询)

azure - 无法对损坏的 Lake 数据库表执行任何操作

Python/WebApp Google App Engine - 测试用户/通过 header

sql - "Safely"允许用户使用SQL进行搜索

javascript - 触发和捕获自定义事件

javascript - CSS 按钮不可点击,具体取决于大小和边距(移动)

php - 验证FCKEditor是否为空

Azure物联网中心: retrieving messages via browser-side javascript API

Azure函数应用程序: Function level concurrency settings

java - 如何在启动时加载应用程序范围的设置(对于 Spring3 webapp)?