AWS Cognito具有API方法 GlobalSignout 和 AdminUserGlobalSignout ,可用于撤销用户池中为用户发布的访问令牌和刷新令牌(但ID令牌不可) )。但是,使用客户端凭据流发出的访问令牌没有关联的用户。 GlobalSignout失败,并显示错误,并且AdminUserGlobalSignout需要一个用户名,在此上下文中没有用户名。
令牌是短暂的,但是在访问令牌遭到破坏的情况下,以类似于RFC 7009中所述的方式撤消令牌将非常省心。
我还没有发现任何指示可以在令牌过期之前显式撤销令牌的信息。有什么设施吗?
答案 0 :(得分:0)
也许某天Cognito将具有此功能和其他一些基本功能,但今天不是。最好的建议是验证授权码中的令牌。
准备撤消用户令牌时,请调用CognitoIdentityServiceProvider.globalSignOut()。
然后,无论您在哪里进行令牌验证,都可以通过调用CognitoIdentityServiceProvider.getUser()添加额外的检查。如果调用成功,则令牌尚未被吊销。如果失败,则没有授权。
顺便说一句,访问令牌中的“ sub”字段是唯一的ID,可以将其匹配回ID令牌。尽管Cognito用户的用户名可以更改,但该值应保持不变。