既存のアクティベーター シード サンプルを利用して、サンプル シード プロジェクトを作成しました。
プロジェクトは基本的に、ロールベースの承認でユーザー/パスワード認証を行います。完全なソース コードは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 の最新機能を使用できません。それらを使用することにほとんど疑問はありません。
質問 1: シルエット
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 の Play Mailer プラグイン
質問 4: フォーム
プレイフォームに検証を追加するには?
@(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
が同じかどうかを確認する検証を追加したいと思います。