我正在开发一个使用OAuth2通过BackEnd进行身份验证的Web应用程序(Angular2)。凭证(即用户名/密码)通过HTTPS以纯文本形式发送到后端。后端用Token和RefreshToken回复。 一切似乎都运行良好,除了是一个令牌到期时间为30分钟的单页应用程序,用户在一段时间不活动后会自动注销,他们需要再次输入凭据。
唯一的例外是在网络浏览器中您可以存储它们(Chrome / Firefox),因此您无需再次输入它们。
在移动设备上(通过cordova),输入一个困难的密码可能并不理想,所以我正在探索不同的方法,主要是关于SO的其他问题。
回顾:
结果: 我很困惑,我不明白什么是最好的方法。如何谷歌/ Facebook / Twitter /等。解决这个问题?
提前感谢您的帮助。
答案 0 :(得分:1)
实现这一目标的选择很少,但是,有可能。
使用SessionStorage - 使用sessionStorage而不是localStorage。存储在sessionStorage中的键/值将在下次应用程序启动时清除。这可能无法完全保护您的应用程序,但肯定可以将风险降至最低。
在本地加密 - 使用cordova-plugin-secure-storage使用随机256位AES密钥加密用户输入。该插件将处理加密和解密
<强>奖金!加密您的应用程序 - 要添加额外的安全层,请使用cordova-plugin-crypt-file自行加密源文件,并阻止任何人查看您的代码并弄清楚发生了什么。