OmniAuth Strategies The Phantom Pain

419 views

Published on

表参道.rb #5 で話した資料
http://omotesandorb.connpass.com/event/20289/

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
419
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

OmniAuth Strategies The Phantom Pain

  1. 1. @yimajo THE PHANTOM PAIN OmniAuth Strategies
  2. 2. https://stargzr.net 自己紹介 一人で株式会社キュリオシティソフトウェアをやっています 今城 善矩
  3. 3. https://stargzr.net StargazerというWebサービスをRailsで つくっています GitHub, Qiita, SlideShare, Stack Overflowの ★数的なものを全部 合計します
  4. 4. https://stargzr.net インタビューされてもいいよという人/組織を 探しています インタビューの数字(2015.9.27現在) • Pocketの後で見る数 255 • ツイート数 210 • はてぶ数 147 • Facebookいいね!数 290
  5. 5. 人が欲しいと思うものを作れ
  6. 6. https://stargzr.net 今週 Stargazerは Stack Overflowと 日本語版Stack Overflowの スコアも対応しました \(^o^)/
  7. 7. https://stargzr.net スコアってどうやって 取得してんの?
  8. 8. https://stargzr.net • OAuthを使っているサービスを利用してidと必要で あればaccess_tokenを取得 • 各サービスのAPIを呼び出して★的なものを取得
  9. 9. https://stargzr.net OmniAuthというOAuthを 抽象化してくれるgemが 超絶便利!!!!
  10. 10. https://stargzr.net 各サービス(provider)ごとの 違いはStrategyパターンでそれ ぞれのgemによって吸収される
  11. 11. https://stargzr.net Strategyに対応したgemの作り方は 細かくドキュメント化されていないの に登録されているものだけで 200個ぐらいある!!! https://github.com/intridea/omniauth/wiki/List-of- Strategies
  12. 12. https://stargzr.net 当然Stack Overflowも omniauth-stackexchange というgemがあっので 使ってみた!!!
  13. 13. _人人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y^Y ̄
  14. 14. https://stargzr.net なぜエラー? • Stack OverflowはStack Exchangeアカウントが親に なっている • 例えばStack Overflowアカ ウントを使っていても、日本 語版Stack Overflowアカウ ントは有効化していなければ 例外が起きてた Stack Exchange 日本語版 Stack Overflow Stack Overflow 有効化無効化 例外
  15. 15. https://stargzr.net 安心して下さい
  16. 16. https://stargzr.net Pull Request出してマージ済みです \(^o^)/
  17. 17. https://stargzr.net ドキュメントがあんまり詳細じゃない のに200個もStrategy gemsがあると 中には適切な実装じゃないgemもある!
  18. 18. https://stargzr.net どういう対処が適切か
  19. 19. 認可画面表示 client_id scope redirect_uri state ID/PW 認可コード発行認可コード access_token要求 認可コード client_id client_secret redirect_uri access_token access_token 発行 連携リンクを クリック ID/PW入力
  20. 20. https://stargzr.net OmniAuthのStrategy作るとき • プロバイダのToken URLなどを仕込む • Request PhaseとCallback Phaseを設定 • レスポンスのJSONはプロバイダ毎に違うのでそれ 用に処理 https://github.com/intridea/omniauth/wiki/Strategy-Contribution-Guide
  21. 21. https://stargzr.net OmniAuthのStrategy作るときの 注意点まとめ • callback_phaseの例外はStandardErrorなら rescueされる • 独自の例外作る場合callback_phaseをoverrideし て独自の例外をrescueしてfail!メソッドを呼ぶ
  22. 22. https://stargzr.net 具体例 def callback_phase super rescue NotRegisteredForStackExchangeSiteError => e fail!(:user_is_not_registered, e) end
  23. 23. 宣伝 最近、iOSアプリ開発の技術メンター業務をしています • Swift/Objective-Cのコードレビューをします • 設計についてアドバイスします(GitHubやSkype)
  24. 24. クライアントの声を紹介 http://curiosity.co.jp/trenders/ こちらからは以上です \(^o^)/

×