对于以下情况,任何帮助都是非常感谢的:
Amazon.com是如何管理不同级别的身份验证的,一次是在您访问站点时,第二次是当您访问“您的帐户”->登录和安全功能时?
用户登录(即认证)到一个网站,并没有活动7天。用户重新访问网站,然后再次要求用户进行身份验证。这可以使用cookie实现,但由于安全性问题,它是使用服务器端的会话令牌实现的。7天后,当浏览器提供过期令牌时,用户将被要求重新进行身份验证。
现在,新的要求是,如果用户登录并访问“您的帐户”页面,
或。
因此,使用令牌,我只能管理一个时间段的不活动,如何处理多个状态,即状态(7天)和部分状态(10分钟)。
如何处理这种情况的行业实践?不想使用cookie作为安全问题。而且,由于SSO提供程序正被用于身份验证,所以使用数据库将是最后一个选项。
-大卫
发布于 2018-03-23 05:51:17
如何处理这个问题将归结为当前到期的会话令牌逻辑的实现细节。
一种常见的方法是将会话令牌存储在数据库或内存缓存中。如果是这样,您可以简单地添加一个新列,该列指示用户何时打开帐户页。
例如,您的新列可以称为accountSettingsStartTime。通常情况下,它没有价值,但是当用户导航到accounts页面时,它将使用当前时间填充。当用户从帐户页面导航时,您可以清除它。然后,当您检查一个安全令牌时,您只需要检查您的标准7天到期日,以及检查accountSettingsStartTime列并确保它在最后10分钟内。
或者,当用户导航到帐户设置时,您可以给用户一个完整的新会话令牌,到期时间为10分钟,并对涉及帐户设置的操作强制使用该令牌。然后,您可以在帐户设置更改时检查该令牌,并要求用户重新验证它是否过期(并使其标准的7天令牌无效)。当然,这需要在客户端付出更多的努力。
正如人们所说,剥猫皮的方法不止一种:)
https://stackoverflow.com/questions/49442823
复制相似问题