我在现有激活剂种子样本的帮助下创建了样本种子项目。
项目基本上使用基于角色的授权进行用户/密码身份验证。您可以在https://github.com/pariksheet/dribble找到完整的源代码。
技术:
- 玩 2.5.3
- 玩剪影 4.0.0
- play2-reactivemongo 0.11.14
- 播放邮件 5.0.5
- 斯卡拉 2.11
- 蒙戈 3.2
虽然这段代码运行良好,但我无法使用 play/silhouette/mongo 的最新功能。我对使用这些没有什么疑问。
问题一:剪影
在 Module.scala 中:
Environment[JWTEnv](
identityService,
authenticatorService,
Seq(),
eventBus
)
在这里,如何传递凭据提供程序对象Seq()
?因为,我无法找出解决方案。我在我的所有控制器类中注入凭据提供程序。
问题 2:ReactiveMongo:
在我的 UserDao.scala 中,我使用旧的 mongo api 来获取集合对象:
val users = reactiveMongoApi.db.collection[JSONCollection]("users")
代码抛出警告:
method db in trait ReactiveMongoApi is deprecated: Use [[database]]
如何使用数据库方法?我可以看到另一个线程 How to setup Play!2.5 with ReactiveMongo,但它没有解决方案。
问题3:邮件
我正在使用以下配置通过播放应用程序发送电子邮件:
smtp.mock=false
smtp {
host="smtp.mail.yahoo.com"
port="465"
ssl=true
user="pari.test@yahoo.com"
password="XXXXXXXXXXX"
from="pari.test@yahoo.com"
}
代码运行良好。但是,我收到警告:
smtp 已弃用,请改用 play.mailer。
当我使用 play.mailer 配置代码失败。 使用 Play 2.5 播放 Mailer 插件
问题四:表格
如何在播放表单中添加验证?
@(tokenId: String, form: Form[ResetPassword])(implicit messages: play.api.i18n.Messages, request: RequestHeader)
@main("Reset Password") {
@helper.form(routes.Application.handleResetPassword(tokenId)) {
@helper.inputText(form("password1"))
@helper.inputText(form("password2"))
<button type="submit">Submit</button>
}
}
在上面的表格中,我想添加验证来检查是否password1
相同password2
。