用于 Azure 移动服务 (REST) 的 Live Connect 身份验证令牌
Posted
技术标签:
【中文标题】用于 Azure 移动服务 (REST) 的 Live Connect 身份验证令牌【英文标题】:Live Connect Authentication Token for use on Azure Mobile Services (REST) 【发布时间】:2013-02-06 07:55:57 【问题描述】:我有一个简单的 Windows 窗体应用程序来试用 Live Connect 和 Azure 移动服务。不是 Windows 8 现代应用程序。
我正在尝试为 Live Connect 使用一些示例代码,并且能够让登录部分正常工作。最后我在登录后得到一个access_token。
在同一 Windows 窗体应用程序的移动服务端,我正在尝试使用 REST 登录。但是,我似乎收到“401 Unauthorized”响应,因为“身份验证令牌的签名格式错误或由不同的密钥签名”
JWT 似乎有两个 '.'在令牌中。 SWT 似乎有 '/'、'+' 和 '='
我需要进行转换吗?
有没有办法配置 Live Connect,以便返回的身份验证令牌是 JWT(或任何移动服务期望的)?
我已经检查了 Live Connect 和 Mobile Services 上的客户端密码,它们是正确的。
【问题讨论】:
您查看过msdn.microsoft.com/en-us/library/windowsazure/jj710106.aspx 中提供的示例吗?它展示了如何使用 Live Connect 提供的令牌进行 POST。 这是我用于代码的移动服务部分的示例(当然,更改了 secrets/X-ZUMO-APPLICATION)。昨晚对此进行了更多研究,我发现我可能没有使用正确的令牌(access_token vs authentication_token)。现在我的问题是,我似乎无法让 Live Connect 给我一个 authentication_token。 要使用 Live Connect 获取身份验证令牌,您需要在实时应用程序上设置重定向 URI,并将构造函数中的重定向 uri 传递给实时连接类。 我的桌面应用程序没有重定向 URI。这是有点令人困惑的一点。为什么我需要一个? 【参考方案1】:正如@carlosfigueira 所指出的,在 Live Connect 开发人员中心,您的应用需要在重定向域字段中包含一些内容。它可以是一个虚拟 URI。
这里的答案证实了这一点:http://social.msdn.microsoft.com/Forums/en-US/messengerconnect/thread/4a110db0-6468-44fb-9152-771987ded050
【讨论】:
以上是关于用于 Azure 移动服务 (REST) 的 Live Connect 身份验证令牌的主要内容,如果未能解决你的问题,请参考以下文章
Azure 移动服务 LoginAsync 方法不适用于 Microsoft Auth Token