Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Amazon Cognito sdk实现“记住我”选项?_Javascript_Angular_Authentication_Amazon Cognito - Fatal编程技术网

Javascript 如何使用Amazon Cognito sdk实现“记住我”选项?

Javascript 如何使用Amazon Cognito sdk实现“记住我”选项?,javascript,angular,authentication,amazon-cognito,Javascript,Angular,Authentication,Amazon Cognito,我正在尝试在Angular2项目中使用amazon cognito identity js实现身份验证工作流的“记住我”选项 当前身份验证流 如果选中“记住我”选项,则将令牌和JWT令牌(特别是这样做,因为我需要一些其他用户信息,如组和角色)保存到具有过期日期的cookie中。(例:5天) Auth-guard(即检查所有路由更改,即使是根路由)将首先检查令牌(而不是JWT) 若cookie为空,则重定向至登录页面 若cookie存在,则检查会话(使用sdk的功能),会话无效,然后重定向到登录页

我正在尝试在Angular2项目中使用amazon cognito identity js实现身份验证工作流的“记住我”选项

当前身份验证流

  • 如果选中“记住我”选项,则将令牌和JWT令牌(特别是这样做,因为我需要一些其他用户信息,如组和角色)保存到具有过期日期的cookie中。(例:5天)
  • Auth-guard(即检查所有路由更改,即使是根路由)将首先检查令牌(而不是JWT)
  • 若cookie为空,则重定向至登录页面
  • 若cookie存在,则检查会话(使用sdk的功能),会话无效,然后重定向到登录页面
  • 如果会话有效,则更新JWT(不是令牌),guard返回true
  • 我认为这似乎很好,但我遇到了一些意想不到的错误,不是经常,而是一个小时过去了(实际会话已过期)

    问题

  • 我也必须更新令牌吗?在
    步骤5
  • this.cognitoUtil.getCurrentUser()异步函数
  • 如果会话过期,cognitoUser.getSession()将返回什么
  • 如果Ques 3返回会话(即使有效或无效),则
    session.isValid()
    的返回值是多少
  • 对。我的意思是我不知道你所说的代币&JWT代币是什么意思。就Cognito标记而言,有id、access和refresh标记。Id和访问令牌在一小时内到期,刷新令牌在30天内到期(默认)。请参阅文件以供参考
  • 我不这么认为。我的意思是amazon cognito identity js SDK使用普通的javascript SDK,并且只从本地存储检索用户
  • SDK将自动尝试使用刷新令牌刷新id/访问令牌(默认情况下有效期为30天)
  • 返回布尔值。请参阅SDK定义

  • Cognito提供了用于记住用户登录的设备的配置

    您可以在用户池设置的“设备”菜单下找到此配置

    基本上,问题“您想记住用户的设备吗?”提供了三个选项

  • 永远-Cognito将永远记住设备
  • 用户选择加入-取决于用户选择
  • 否-从不跟踪设备
  • 有关更多详细信息,请访问此链接-在这里您将找到相同的实现。

    感谢您的详细回答!这不是MFA的具体解决方案吗?