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

Contenu connexe

Similaire à Yesod and Auth

Robotium を使った UI テスト
Robotium を使った UI テストRobotium を使った UI テスト
Robotium を使った UI テスト健一 辰濱
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?Shinichi Nishikawa
 
20170415 mttokyo handson
20170415 mttokyo handson20170415 mttokyo handson
20170415 mttokyo handsonSix Apart
 
Try! cms2012標準マニュアル2013 03
Try! cms2012標準マニュアル2013 03Try! cms2012標準マニュアル2013 03
Try! cms2012標準マニュアル2013 03博康 三井
 
Yesod でブログエンジンをつくってみた
Yesod でブログエンジンをつくってみたYesod でブログエンジンをつくってみた
Yesod でブログエンジンをつくってみたHiromi Ishii
 
多要素認証による Amazon WorkSpaces の利用
多要素認証による Amazon WorkSpaces の利用多要素認証による Amazon WorkSpaces の利用
多要素認証による Amazon WorkSpaces の利用Amazon Web Services Japan
 
仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 Hideo Takahashi
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト健一 辰濱
 
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0Yuki Okamoto
 
4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座Shinichi Nishikawa
 
20141101 handson
20141101 handson20141101 handson
20141101 handsonSix Apart
 
SoftLayer API で資産管理をお手伝い!
SoftLayer API で資産管理をお手伝い!SoftLayer API で資産管理をお手伝い!
SoftLayer API で資産管理をお手伝い!Kazumi IWANAGA
 
WordBench京都版 _sハンズオン
WordBench京都版 _sハンズオンWordBench京都版 _sハンズオン
WordBench京都版 _sハンズオンHidetaka Okamoto
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門Hisashi HATAKEYAMA
 
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版貴志 上坂
 

Similaire à Yesod and Auth (20)

Robotium を使った UI テスト
Robotium を使った UI テストRobotium を使った UI テスト
Robotium を使った UI テスト
 
Ppl
PplPpl
Ppl
 
Yesod(at FPM2012)
Yesod(at FPM2012)Yesod(at FPM2012)
Yesod(at FPM2012)
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
 
20170415 mttokyo handson
20170415 mttokyo handson20170415 mttokyo handson
20170415 mttokyo handson
 
Try! cms2012標準マニュアル2013 03
Try! cms2012標準マニュアル2013 03Try! cms2012標準マニュアル2013 03
Try! cms2012標準マニュアル2013 03
 
Yesod でブログエンジンをつくってみた
Yesod でブログエンジンをつくってみたYesod でブログエンジンをつくってみた
Yesod でブログエンジンをつくってみた
 
多要素認証による Amazon WorkSpaces の利用
多要素認証による Amazon WorkSpaces の利用多要素認証による Amazon WorkSpaces の利用
多要素認証による Amazon WorkSpaces の利用
 
仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法
 
Redmine Ansible
Redmine AnsibleRedmine Ansible
Redmine Ansible
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
 
4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座
 
20141101 handson
20141101 handson20141101 handson
20141101 handson
 
SoftLayer API で資産管理をお手伝い!
SoftLayer API で資産管理をお手伝い!SoftLayer API で資産管理をお手伝い!
SoftLayer API で資産管理をお手伝い!
 
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
 
WordBench京都版 _sハンズオン
WordBench京都版 _sハンズオンWordBench京都版 _sハンズオン
WordBench京都版 _sハンズオン
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
 
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
 

Plus de Seizan Shimazaki

Plus de Seizan Shimazaki (7)

PFDS8.1
PFDS8.1PFDS8.1
PFDS8.1
 
20120527yesod
20120527yesod20120527yesod
20120527yesod
 
Pfds20120304
Pfds20120304Pfds20120304
Pfds20120304
 
Cryptography
CryptographyCryptography
Cryptography
 
Digital Signature and PKI
Digital Signature and PKIDigital Signature and PKI
Digital Signature and PKI
 
一方向ハッシュ関数(One-way Hash Function)
一方向ハッシュ関数(One-way Hash Function)一方向ハッシュ関数(One-way Hash Function)
一方向ハッシュ関数(One-way Hash Function)
 
メッセージ認証コード(Message Authentication Code)
メッセージ認証コード(Message Authentication Code)メッセージ認証コード(Message Authentication Code)
メッセージ認証コード(Message Authentication Code)
 

Yesod and Auth