アプリ間でOAuthトークンを再利用することは可能ですか?

authentication oauth web-services xauth
アプリ間でOAuthトークンを再利用することは可能ですか?

私は、xAuthを使用してTwitterにログインするiPhoneアプリを開発しています。 アプリは、自分のWebサービスとも通信します。 Webサービス内でユーザーモデルを維持するのではなく、Twitterを介して既に認証されているすべてのユーザーにリクエストを許可するだけです。

高レベルのユースケースは次のとおりです。ユーザーはアプリを介してTwitterにログインし、対話します。 また、アプリを介してWebサービスとやり取りすることもできます。 Webサービス自体がTwitterと対話することはありません。 私の側で個別の認証システムを維持する代わりに、サーバーに「OK、Twitterが@joshfrenchだと言ったらアクセスできる」と言ってほしい。

ただし、サーバー側で要求を検証する方法がわかりません。 認証の証明をモバイルクライアントからWebサービスに渡すにはどうすればよいですか? 既存のTwitterトークンを送信して、サーバーから検証できますか? または、どういうわけか私のTwitterアプリの資格情報でリクエストに署名しますか? これはOAuthの有効な使用ですか?

  4  2


ベストアンサー

twitterアプリのキーとシークレットをiphoneアプリとサーバーの両方に保存し、ユーザーのoauthトークン(「アクセストークン」とも呼ばれます)キー/シークレットをiphoneアプリからサーバーに送信すると、次のことができます。サーバーからの同じタイプのAPI呼び出し。

consumer = OAuth::Consumer.new(app_key, app_secret, …)
access_token = OAuth::AccessToken.new(consumer, user_key, user_secret)
response = access_token.get('/stuff.xml')

その情報をアプリからサーバーに送信しても大丈夫ですか? 安全に実行し、アプリの動作についてユーザーの期待の範囲内であれば、oauthの完全な使用法です。

Twitterの利用規約で許可されていない可能性があります-ネットワーク経由でユーザーのアクセスシークレットを転送できない、またはそのようなことを伝えるものがあると想像できます。 (完全な野生の推測、私はそれがそうである可能性が特に高いとは思わない)

1


タイトルとURLをコピーしました