当用户通过AWS中的Cognito托管UI进行身份验证时,如何刷新JWT令牌?

详细信息优先

  • 环境= Cognito托管UI
  • 情况=用户登录使用
  • 结果=他已成功通过身份验证,并被重定向到AWS为其添加参数“ id_token =“并带有任何值”的任何URL

使用jwt.io =

解密令牌后采样任何值
{
"at_hash": "some_value_here","sub": "the_sub_id_in_cognito","aud": "the_client_id_of_the_cognito_app","email_verified": true,"token_use": "id","auth_time": 1573661803,"iss": "https://cognito-idp.us-east-1.amazonaws.com/AWSRegion_CognitoPoolName","name": "FirstName LastName","cognito:username": "the_username_in_cognito","exp": 1573665403,"iat": 1573661803,"email": "the_email_in_cognito"
}

我的问题=此令牌在一小时内到期(您无法更改)。为了使用户的身份验证时间超过一小时,您必须使用Cognito InitiateAuth API提交刷新令牌。

一切正常,但我在该JSON中看不到任何刷新令牌:|

我从哪里获得刷新令牌值?是在初始用户注册时生成一次(并且仅生成一次)的东西,我应该将其存储在某个数据库中吗?

还是该令牌不是由Cognito托管用户界面生成的,因为它不受支持,我应该完全停止使用它?

PS:从另一个角度讲-> Cognito Hosted UI有什么好处吗?还是胡扯,我应该完全停止研究它了吗?

谢谢,希望您能在这方面帮助我...

Marius

jieci1981 回答:当用户通过AWS中的Cognito托管UI进行身份验证时,如何刷新JWT令牌?

更新。

我更改了逻辑以继续使用Cognito托管UI并从Lambda“生成” HTML页面。

我已使用此处的逻辑-> https://github.com/aws/chalice/issues/717来获取身份验证代码,并使用Lambda将它们作为JWT令牌存储在cookie中。

我还必须对Cognito中的App Client Settings进行如下修改:

  • 允许的OAuth流量=仅Authorization code grant

基本上,现在在Lambda层上“手动”生成使用JWT令牌的逻辑。

希望这可以帮助某个人...

本文链接:https://www.f2er.com/3107090.html

大家都在问