使用Play Framework和Scala进行Restful(和Stateless)Auth

时间:2013-04-30 16:29:00

标签: authentication playframework-2.0 stateless

我最近一直在考虑如何正确地获取我的webframework / application-stack。我慢慢转向scala和函数式编程(来自Python和CherryPy)。因此,调查Play是很自然的,因为它是最广泛支持的框架(现在即使是Typesafe也采用了它)。如果我在这里遗漏了什么,请随时纠正我。

所以Play真正拥抱无状态webapps的想法,我很难在身份验证和授权方面解决这个问题。现在经过一些在线挖掘(The definitive guide to form-based website authentication)后,我得出的结论是,必须对每次调用我的后端(JSON-RPC或其他)进行身份验证和授权,远离旧的会话cookie想法。

现在用当今的技术实现这一目标的最佳方法是什么?

那怎么样:

我想过"简单" DigestAuth已被证明并且广泛使用,但它与旧的和生锈的基本版本具有相似的感觉。

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以轻松获得工作解决方案。但是,不是一个好的。似乎无国籍到有状态的优势不需要分享会话。易于扩展。但是,每次通话的身份验证都很昂贵。有时甚至会添加一些额外的数据库读取操作。这会减慢响应速度。如果要缓存身份验证结果,那么与有状态会话解决方案没有区别。 正如我的意见。您无法以无状态方式实现基于角色的访问控制!

答案 1 :(得分:0)

至于我,我在我当前的项目https://github.com/t2v/play20-auth中使用它,工作正常。