OAuth Echo の Rails Gem

Preview:

DESCRIPTION

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

Citation preview

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="GDdmIQH6jhtmLUypg82g",oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y",oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1272325550",oauth_token="819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw",oauth_version="1.0"

POST http://api.twitpic.com/2/upload.json

X-Auth-Service-Provider: https://api.twitter.com/1/account/verify_credentials.jsonX-Verify-Credentials-Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g",oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y",oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1272325550",oauth_token="819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw",oauth_version="1.0"

POST http://api.twitpic.com/2/upload.json

X-Auth-Service-Provider: https://api.twitter.com/1/account/verify_credentials.jsonX-Verify-Credentials-Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g",oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y",oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1272325550",oauth_token="819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw",oauth_version="1.0"

(ほぼ)これだけ

GET https://api.twitter.com/1/account/verify_credentials.json

Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g",oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y",oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1272325550",oauth_token="819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw",oauth_version="1.0"

OAuth Echo

• Delegator(TwitPic)はリクエストごとにService Provider(Twitter)に認証を求める

• 1リクエストで完結する単純なAPIの実装に向いている

• 認証だけなので、Service Provider(Twitter)

側に書き込んだりすることはできない

• 非公式仕様- ほぼ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 index render :json => { :message => "Limited Access" } end ...end

かんたんBasic認証

class PostsController < ApplicationController oauth_echo_authenticate_with :twitter

def index render :json => { :message => "Limited Access" } end ...end

かんたんOAuth Echo認証

きっかけ

http://www.atmarkit.co.jp/news/201004/21/twitterapi.html

きっかけ

• Twitterのアノテーションの話がいつのまにか消滅

• 自分で使いたい分だけでも自分で作るか

Web認知行動療法http://u2plus.jp/

開発中

Recommended