在Electron中使用AWS Cognito的持久用户会话

时间:2018-09-03 09:22:06

标签: javascript node.js amazon-web-services electron amazon-cognito

使Electron中的AWS Cognito用户会话持久化

AWS Cognito将当前用户会话存储在localStorage中。用户登录后,localStorage中存在用户会话时,localStorage在Electron中不是持久性的-因此,当应用程序重新启动时,用户会话消失了,用户必须再次登录。通常,用户会话将从localStorage接收,因为它在浏览器中是持久的。

我知道人们可以使用electron-json-storage将数据持久地存储在Electron以及通常在节点应用程序中,但是由于AWS cognito使用localStorage,因此我只能使用会改变{{ 1}}成为持久性,即重定向到文件存储。

我尝试了node-localstorage可以正常工作,但是即使设置了localStorage,cognito仍会使用浏览器中的localStorage。

我知道可以将userPool传递给global.localStorage对象以用作存储对象,但是当我将node-localstorage传递给它时,它仍然使用原始的{Storage: ...}

TLDR;

  • 如何使AWS Cognito用户会话在电子环境中持久存在?
  • 如果可能的话,我可以在全局范围内将localStorage替换为node-localstorage,以便AWS Cognito使用它吗?

1 个答案:

答案 0 :(得分:2)

Cognito将给您三个令牌idTokenaccessTokenrefreshToken 一个简单的想法是将refreshToken保存在您认为是持久性的localstorage中。然后在电子应用上开始使用refreshToken对Cognito上的用户进行身份验证。