我们正在将Aws Cognito与Oauth 2.0结合使用,我们想知道cognito是否支持根据Oauth 2.0规范(https://tools.ietf.org/html/rfc6819)的刷新令牌旋转:
基本思想是随每个刷新请求更改刷新令牌值,以检测使用旧的刷新令牌获取访问令牌的尝试
当我们使用Aws .net sdk刷新令牌时:
await user.StartWithRefreshTokenAuthAsync(authRequestRefresh).ConfigureAwait(false);
...我们没有获得新的刷新令牌。获取新的刷新令牌的唯一方法是进行新的登录:
await user.StartWithSrpAuthAsync(authRequest).ConfigureAwait(false);
感谢您的帮助!
亲切的问候, 彼得
答案 0 :(得分:0)
Cognito不支持刷新令牌轮换。但是,您可以更改刷新令牌对应用程序客户端保持有效的天数。
答案 1 :(得分:0)
为了实现这一点并使用AWS Cognito,您可以使用OAuth 2.0授权授予流程,在其中仅在后端存储Cognito访问和刷新令牌。为了在后端和前端之间保持会话,可以使用提供轮换刷新令牌的其他库/服务。其工作方式如下:
现在实现旋转刷新令牌非常棘手,因为您必须对刷新令牌API进行前端同步调用+您不能在生成新的your-rt时使旧的your-rt无效-如果新的your-rt无法达到该怎么办客户端? (它们将被注销!)。这是一个blog post对此进行了很好的说明,并且它还提供了一个library来实现旋转刷新令牌! (不是使用cognito,但您可以很容易地对其进行修改。)
完全免责声明:我是这个图书馆的主要撰稿人之一,因为我认为它很棒!请随时通过我们的Discord server与我联系以进行进一步的说明。希望这个答案对您有所帮助!