Azure API应用和Azure移动应用具有相同的Auth。天蓝色后端通常保持提供者的令牌,例如,访问令牌到twitter,并为客户端发出不同的访问令牌以访问天蓝色服务。 This question谈论这个过程。
还有另一种登录方法,客户可以自行获取提供商的令牌。然后,它可以将该令牌与Azure Api App或Azure移动应用程序一起使用。 当您使用Azure移动应用客户端SDK时,您可以使用.Login()函数上的重载。
我想知道如何在没有移动应用SDK的情况下使用Twitter或任何其他提供商的令牌登录我的Azure-Api-App。
似乎没有关于此事的文件。我在哪里发送HTTP请求以及它应该具有哪些标头?
答案 0 :(得分:3)
您可以通过向您的应用发出以下HTTP请求,而无需使用Mobile Client SDK即可使用Twitter凭据登录:
POST /.auth/login/twitter
Content-Type: application/json
Content-Length: XXX
{"access_token":YYY, "access_token_secret":ZZZ}
App Service将验证凭据,将令牌存储在其令牌存储中,然后将JSON有效负载返回到包含身份验证令牌的HTTP客户端。成功回应将如下所示:
{
"user": {
"userId" : "<userId>"
},
"authenticationToken" : "<jwt_token>"
}
然后,您可以使用 jwt_token 值设置x-zumo-auth请求标头,以对REST API进行经过身份验证的调用。例如:
POST /api/doSomethingThatRequiresAuth
Content-Length: 0
X-ZUMO-AUTH: <jwt_token>
除了/.auth/login/provider的有效负载可能不同之外,其他提供程序的进程相同。该设计源自旧的Mobile Services Client-Directed Login设计,因此在大多数情况下,您可以从该文档中推断出有效负载的外观。