【问题标题】:How do you get the username of a Windows Azure Mobile Services user?如何获得 Windows Azure 移动服务用户的用户名?
【发布时间】:2013-05-27 08:40:03
【问题描述】:

用户通过身份验证后,如何获取其帐户的用户名?我在 MSUser.h 中看不到任何有用的东西。对于 4 个不同的身份提供者,我是否必须以不同的方式执行此操作?

【问题讨论】:

    标签: ios identity azure-mobile-services


    【解决方案1】:

    你是指客户端还是服务器端?在服务器代码中,您可以在user 对象上使用getIdentities(),该对象始终是服务器脚本中的参数。每个提供者的属性都不同,如下所示:

    { 
        "facebook":{ 
            "userId":"Facebook:my-actual-user-id", 
            "accessToken":"the-actual-access-token" 
        } 
    }
    

    对于 Twitter:

    { 
        "twitter":{ 
            "userId":"Twitter:my-actual-user-id", 
            "accessToken":"the-actual-access-token", 
            "accessTokenSecret":"the-actual-access-token-secret" 
        } 
    } 
    

    微软:

    { 
        "microsoft":{ 
            "userId":"MicrosoftAccount:my-actual-user-id", 
            "accessToken":"the-actual-access-token" 
        } 
    } 
    

    谷歌:

    { 
        "google":{ 
            "userId":"Google:my-actual-user-id", 
            "accessToken":"the-actual-access-token" 
        } 
    }
    

    Taken from Carlos Figueira's excellent blog post 更详细)

    在客户端,我没有使用 iOS SDK,但在 JavaScript 中是client.currentUser.userId

    【讨论】:

    • 使用最新版本,似乎没有办法再获取访问令牌(即使启用了用户预览功能),对 getIdentities 的调用仅返回带有 userId 的提供程序对象.我还抱怨文档对此不正确:msdn.microsoft.com/en-us/library/azure/jj554220.aspx。如果没有访问令牌,您甚至无法对提供者进行大部分 API 调用以获取更多用户信息。
    猜你喜欢
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多