4

xAuth を使用して Twitter にログインする iPhone アプリに取り組んでいます。このアプリは、独自の Web サービスとも通信します。Web サービス内でユーザー モデルを維持するのではなく、Twitter 経由で既に認証されている人なら誰でもリクエストを行えるようにしたいと考えています。

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

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

4

1 に答える 1

1

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 の利用規約で許可されていない可能性があります。ネットワークを介してユーザーのアクセス シークレットを転送することはできないなどと書かれている可能性があります。(全くの勝手な憶測です、特にそうである可能性は低いと思います)

于 2011-04-08T15:47:47.867 に答える