0

我在现有激活剂种子样本的帮助下创建了样本种子项目。

项目基本上使用基于角色的授权进行用户/密码身份验证。您可以在https://github.com/pariksheet/dribble找到完整的源代码。

技术:

  1. 玩 2.5.3
  2. 玩剪影 4.0.0
  3. play2-reactivemongo 0.11.14
  4. 播放邮件 5.0.5
  5. 斯卡拉 2.11
  6. 蒙戈 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

4

0 回答 0