会话

时间:2016-05-15 20:32:57

标签: azure-web-sites azure-api-apps

根据文件 (https://azure.microsoft.com/en-us/blog/announcing-app-service-authentication-authorization/)客户端可以使用HTTP POST更新访问令牌到/.auth/login/[provider name]

"或者,客户端可以使用提供程序SDK获取令牌并将其交换为会话令牌。只需使用密钥“access_token”(或Microsoft Account的“authenticationToken”)下的JSON正文中的提供者令牌将HTTP POST提交到同一端点。"

或者,客户端可以使用提供程序SDK获取令牌并将其交换为会话令牌。只需使用密钥“access_token”(或Microsoft Account的“authenticationToken”)下的JSON正文中的提供者令牌将HTTP POST提交到同一端点。 "

我正在使用Facebook并能够将我直接从facebook收到的access_key发布到/.auth/login/facebook终点。但是,响应采用以下模式:

{
    "authenticationToken":[string value],
    "user": {
       "userId": "sid:[hex value]"
     }
}

似乎没有关于如何交换会话令牌和/或Web版本似乎可以使用的AppServiceAuthSession cookie的任何文档。

仅供参考 - 我现在只想使用直接的HTTP / REST实现,而不是任何SDK。

1 个答案:

答案 0 :(得分:1)

看起来你正走在正确的轨道上。在您返回的JSON有效负载中, authenticationToken 是文档引用的会话令牌:

{
    "authenticationToken":[this is your session token],
    "user": {
       "userId": "..."
     }
}

使用SDK时,会自动解析此值,并将其用于后端服务的所有后续API调用。如果您直接使用REST,则可以使用所需的任何JSON库解析此令牌,然后将其附加到使用x-zumo-auth HTTP请求标头对服务API进行的任何HTTP调用。

例如:

GET /api/values
x-zumo-auth: [session token from the previous step]

我希望有所帮助。