Your SlideShare is downloading. ×
Yesod and Auth
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Yesod and Auth

1,149
views

Published on


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,149
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Yesod と認証プラグイン 島崎 清山 @seizans
  • 2. 自己紹介• @seizans  • 勤務:ワークスアプリケーションズ(ERPパッケージ)• エンジニア歴:3年• Haskell歴:1年• Haskell made me リア充.• 結婚することになったので Yesod を使い始めた • @shokosさん, @dekosukeさん達とYesod遊びはじめ
  • 3. 作っているサイト
  • 4. Yesod の認証• オープンな認証各種のためのプラグインがある • BrowserId, GoogleMail, OAuth, OpenId • 使い方 • まず App を YesodAuth のインスタンスにして • ・・・とか思っていたら • 1.0 では yesod init したら出来てる • /auth/login でログイン画面が出る • that’s all.  • と思ったけどちゃんと動かないので後で解決します
  • 5. 想定されていないこと• 想定されていないこと• メッセージ送信機能の基盤としての利用• 管理者の承認の元で認証すること • 自分で自分のアカウントを作れる仕様が前提
  • 6. 出来合いのメール認証でできること• 自分がメアドを持っていればアカウント発行できる• 記入したパスワードのhash化などはしてくれてる• 余談:サンプルコードでは前提として• デプロイ環境がsendmailできること
  • 7. 解決したかったこと• アカウントは管理者だけが発行できるように• routingをてきとうに増やして機能つける• sendmailなしでも動くように• 認証系の文言を変更する
  • 8. やること• メール認証プラグインをとりあえず作って使う• YesodAuthEmail をコピペする• とりあえずパッケージ化する• cabal install する• 以上
  • 9. やること• アカウントを管理者だけが発行できるように• アカウント発行用のリソース(url)には管理者権限が必 要なようにする • Yesod Book の Authorization そのまま書けばいいだけ• そのかわりパスワードリセット用リソースを追加 • 認証プラグインの方でroutingとhandler書く • そのurlへのリンクを画面に入れる
  • 10. やること• sendmail できない環境で使うために • サンプルで Network.Mail.Mime の箇所を変える • 普通に SMTP ライブラリ使う • Network.SMTP.Client を普通に使えばよい • ということで自分のアプリの記述変えればOK
  • 11. やること• 認証系の文言を変更したい• デフォルトは Yesod.Auth.Message の defaultMessage で、 機能に対応する文言を指定している• AuthMessage -> Text な関数を自分で作ればよい• Appを YesodAuth インスタンスにするところで renderMessage メソッドを上書きする• ということで自分のアプリの記述変えればOK
  • 12. リポジトリ• https://github.com/seizans/happiage • https://github.com/seizans/yesod-auth-mail