【发布时间】:2018-08-20 19:07:34
【问题描述】:
在为用户池注册身份提供者 oauth 令牌时,是否有任何可能的方法来获取它们?我需要离线访问谷歌用户访问和刷新令牌。到目前为止,我已经尝试过:
1) 使用amazon-cognito-auth-js 库
我可以创建用户,但无法获取 oauth 访问和刷新令牌。看起来属性映射应该可以实现这一点,但是在映射选择框中有no option for access/refresh tokens。
2) 使用google javascript api登录并通过cognitoidentityserviceprovider.adminCreateUser创建用户
这个流程是:
- 通过gapi登录并获取oauth
authorization_code - 将
authorization_code发送到 HTTP lambda 函数以交换访问和刷新令牌。 - 使用
adminCreateUser创建一个新的用户池用户 - 向该用户添加刷新/访问令牌。
虽然,似乎没有办法通过身份提供者adminCreateUser。只有用户名/密码。
3) 使用 gapi 登录并进行 ajax 调用到 oauth2/idpresponse
类似于上一个流程,我会:
通过gapi登录并获取oauth
authorization_code将
authorization_code发送到 HTTP lambda 函数以交换访问和刷新令牌。向
https:<domain>.auth.us-east-1.amazoncognito.com/oauth2/idpresponse?code=<authorization_code>发出GET 请求,这似乎是amazon-cognito-auth-js 库中注册新用户的步骤。向该用户添加刷新/访问令牌。
但是,对oauth2/idpresponse 的 GET 请求总是失败。除了authorization_code 之外,还有其他必需的查询参数,我不知道如何获取(状态?)。
【问题讨论】:
标签: amazon-web-services oauth amazon-cognito