ユーザー登録画面
↓
「仮登録メールを送信しました、本登録にはこのリンクにアクセスして云々」
↓
本登録が完了しました
という、よくあるやつです。
次のふたつのプラグインで実現
まあ、「Email Confirmation」のチュートリアルをやってみたら、なんとなく感じがつかめそうですが、実装はこんな感じで。
1.「Email Confirmation」にメールアドレス、入力されたユーザー情報(ログインIDとか)を渡す
[PersonController#save]
emailConfirmationService.sendConfirmation("sendto@sample.com", "メール本文", [from:"from@sample.com", view:"/path/to/mail-body-gsp"], "${loginid}\t${encordedPassword}")emailConfirmationServiceはプラグインが提供しているServiceです。
こうすると "sendto@sample.com"にメールアドレス確認用のリンクがかかれたメールが送られます。最後に"${loginid}\t${encordedPassword}"でユーザー情報を登録してます。
2.「Email Confirmation」のアドレス確認完了イベントでユーザー登録
さて、メールに送信されたリンクを押すと、emailConfirmationServiceのonConfirmationイベントが発生します。
このイベントにはリスナとしてクロージャを登録するのですが、このクロージャの中でさっき登録した"${loginid}\t${encordedPassword}"がとれるので、分解してユーザーを構築してDBに格納して終了です。
Grailsのユーザー認証、認可用プラグインには今回使用したSpringSecurityの他にも、JSecurity(もう非推奨、今後はApache Shiro(何?)プラグインを使えといわれた)、Authentication Pluginなどいろいろあるんですが、どれ使っても同じ用に実装すればできるのかな? (ほとんど触ってないので分からないですが。)
というか、この辺のプラグインだとEmail Confirmation使わずにできたりしないかな…
0 件のコメント:
コメントを投稿