2017-08-25 106 views
0

我正在使用Play框架开发Web应用程序。现在我需要执行认证/授权没有数据库(真奇怪的要求)。只有登录和注销功能,不需要注册。用户名/密码对将使用外部服务进行认证。使用Play框架实现用户登录/退出而不使用数据库

由于经验有限,我目前的想法是使用令牌进行身份验证,并使用本地文件来存储用户名/密码。

我的想法是否可行?有没有推荐的库?如果我使用令牌,是否需要每次都在Http请求/响应中传递该令牌并在每个控制器中验证令牌?

谢谢!

回答

0

为什么将用户名和密码存储在本地文件中?我没有看到这一点,这构成了一个数据库,你想避免它似乎...如果你想要部署多个服务器,并有一些负载平衡,决定使用本地文件将是一个重要的限制完成。

Playframework是无状态的,这意味着服务器不会保持会话状态。要解决该问题,请使用签名会话cookie(浏览器正在存储会话数据,并且无法在会话数据签名时对其进行修改)。

这里是你可以做什么:

现在,这种方法有一个严重的下行,它让人们重播(再利用)旧会话cookie假装被记录。另一个(可能不太严重,取决于您的要求)是,在一定的不活动之后实施会话过期并不简单。

这可能足以回答你的问题并给你一个出发点。

+0

感谢您的启发。我想在本地文件中存储凭据,因为我需要在许多其他服务和助手中使用用户名/密码,但在阅读您的答案后,我可以看到它缺乏考虑。我会阅读链接,再次感谢。 – Zanecat

+0

在上面的存储凭证之上,这种方式需要非常小心的设计,否则它很快就会变成安全噩梦。 –

相关问题