OAuth Echo
の Rails Gem
2011.12.21 第2.1回Twitter API勉強会 #twtr_hack
@tkawa
REST
REST
今回は関係ありません
OAuth Echo
TwitPic
• 画像アップロードサービス
• アカウント登録不要
• TwitterのID・パスワードも入力不要
• どうやって認証してるの?
OAuth Echo
• 認証をService Provider(Twitterなど)に
委譲するしくみ
• クライアントがOAuth登録してあれば、
事前の登録やトークン取得が不要
GET https://api.twitter.com/1/account/
verify_credentials.json
Authorization: OAuth
oauth_consumer_key="GDdmIQH6jhtmLUypg8...
POST http://api.twitpic.com/2/upload.json
X-Auth-Service-Provider: https://api.twitter.com/1/
account/verify_credentials.j...
POST http://api.twitpic.com/2/upload.json
X-Auth-Service-Provider: https://api.twitter.com/1/
account/verify_credentials.j...
GET https://api.twitter.com/1/account/
verify_credentials.json
Authorization: OAuth
oauth_consumer_key="GDdmIQH6jhtmLUypg8...
OAuth Echo
• Delegator(TwitPic)はリクエストごとに
Service Provider(Twitter)に認証を求める
• 1リクエストで完結する単純なAPIの実装
に向いている
• 認証だけなので、Service ...
• 非公式仕様
- ほぼTwitterでしか使われていない
• OAuth 1.0仕様に基づいており、OAuth 2.0
になると使えない
- Google, Facebook, GitHubなどがOAuth 2.0
問題点?
class PostsController < ApplicationController
http_basic_authenticate_with :name =>
"tkawa", :password => "secret"
def ind...
class PostsController < ApplicationController
oauth_echo_authenticate_with :twitter
def index
render :json => { :message =...
https://github.com/tkawa/
oauth_echo_authentication
きっかけ
http://www.atmarkit.co.jp/news/201004/21/twitterapi.html
きっかけ
• Twitterのアノテーションの話がいつのま
にか消滅
• 自分で使いたい分だけでも自分で作る
か
Web認知行動療法
http://u2plus.jp/
開発中
OAuth Echo の Rails Gem
OAuth Echo の Rails Gem
OAuth Echo の Rails Gem
OAuth Echo の Rails Gem
Upcoming SlideShare
Loading in …5
×

OAuth Echo の Rails Gem

5,147 views

Published on

補足などはこちら
http://d.hatena.ne.jp/tkawa/20111222/p1

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

No Downloads
Views
Total views
5,147
On SlideShare
0
From Embeds
0
Number of Embeds
1,381
Actions
Shares
0
Downloads
10
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

OAuth Echo の Rails Gem

  1. 1. OAuth Echo の Rails Gem 2011.12.21 第2.1回Twitter API勉強会 #twtr_hack
  2. 2. @tkawa
  3. 3. REST
  4. 4. REST 今回は関係ありません
  5. 5. OAuth Echo
  6. 6. TwitPic • 画像アップロードサービス • アカウント登録不要 • TwitterのID・パスワードも入力不要 • どうやって認証してるの?
  7. 7. OAuth Echo • 認証をService Provider(Twitterなど)に 委譲するしくみ • クライアントがOAuth登録してあれば、 事前の登録やトークン取得が不要
  8. 8. GET https://api.twitter.com/1/account/ verify_credentials.json Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g", oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0A QR3Fmi7Q6Y", oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1272325550", oauth_token="819797- Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw", oauth_version="1.0"
  9. 9. POST http://api.twitpic.com/2/upload.json X-Auth-Service-Provider: https://api.twitter.com/1/ account/verify_credentials.json X-Verify-Credentials-Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g", oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0A QR3Fmi7Q6Y", oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1272325550", oauth_token="819797- Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw", oauth_version="1.0"
  10. 10. POST http://api.twitpic.com/2/upload.json X-Auth-Service-Provider: https://api.twitter.com/1/ account/verify_credentials.json X-Verify-Credentials-Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g", oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0A QR3Fmi7Q6Y", oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1272325550", oauth_token="819797- Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw", oauth_version="1.0" (ほぼ)これだけ
  11. 11. GET https://api.twitter.com/1/account/ verify_credentials.json Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g", oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0A QR3Fmi7Q6Y", oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1272325550", oauth_token="819797- Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw", oauth_version="1.0"
  12. 12. OAuth Echo • Delegator(TwitPic)はリクエストごとに Service Provider(Twitter)に認証を求める • 1リクエストで完結する単純なAPIの実装 に向いている • 認証だけなので、Service Provider(Twitter) 側に書き込んだりすることはできない
  13. 13. • 非公式仕様 - ほぼTwitterでしか使われていない • OAuth 1.0仕様に基づいており、OAuth 2.0 になると使えない - Google, Facebook, GitHubなどがOAuth 2.0 問題点?
  14. 14. class PostsController < ApplicationController http_basic_authenticate_with :name => "tkawa", :password => "secret" def index render :json => { :message => "Limited Access" } end ... end かんたんBasic認証
  15. 15. class PostsController < ApplicationController oauth_echo_authenticate_with :twitter def index render :json => { :message => "Limited Access" } end ... end かんたんOAuth Echo認証
  16. 16. https://github.com/tkawa/ oauth_echo_authentication
  17. 17. きっかけ http://www.atmarkit.co.jp/news/201004/21/twitterapi.html
  18. 18. きっかけ • Twitterのアノテーションの話がいつのま にか消滅 • 自分で使いたい分だけでも自分で作る か
  19. 19. Web認知行動療法 http://u2plus.jp/ 開発中

×