在Scala的Play 2中,按照Book App示例,我现在有一个基本的工作应用程序。
现在我想要添加一些功能,例如:
用户注册
用户身份验证以访问某些页面
在Scala的Play中最好的方法是什么?我应该自己管理吗?还是有插件可以用来实现这些功能?
在Scala的Play 2中,按照Book App示例,我现在有一个基本的工作应用程序。
现在我想要添加一些功能,例如:
用户注册
用户身份验证以访问某些页面
在Scala的Play中最好的方法是什么?我应该自己管理吗?还是有插件可以用来实现这些功能?
注意: 我是 Silhouette 的维护者。
我建议您使用 Silhouette,它是 Secure Social 的核心版本,旨在构建一个更具可定制性、非阻塞和经过充分测试的实现。
对于第一个稳定版本,只有两个必须解决的问题。而这些问题只是未来的请求。没有计划进行 API 更改。需要改进文档,并且已经开始编写一个示例应用程序。单元测试也是一个很好的起点。
如果您计划按照 Secure Social 所述的身份验证流程进行操作,则应坚持使用此方式。这种方式已经存在超过两年,由许多公司进行了充分测试。否则,请考虑使用 Silhouette。
Secure Social (http://securesocial.ws/)
但是它的注册流程比较特殊,用户需要先输入电子邮件地址,然后接收到注册表单链接。
不过,有一个拉取请求解决了这个问题 (https://github.com/jaliss/securesocial/pull/260)。
Play Authenticate
它不支持 Scala。但是我在这里创建了一个解决方法:https://github.com/joscha/play-authenticate/issues/92
它们都需要您编写与数据库交互的接口层。它们的一个重要缺点是,您将无法使用响应式数据库驱动程序(如 Reactive Mongo)。它们假定您会立即返回结果,而不是 Future 的结果。
有一个名为securesocial的插件(http://securesocial.ws),涵盖了大多数常见的身份验证方法,并具有注册功能。我发现它非常有用。
缺点是文档不够完善。如果您想做一些比最简单的场景略微复杂的事情,请准备好阅读源代码。