QA@IT

OAuthを使ったログイン認証時にエラーが

2374 PV

現在、railsでtwitterを使ったログイン機能を実装したいなと考え、「Ruby OAuth GEM」を使っています。
しかしながらtwitterの認証用URIに飛ばす際に406エラーが返ってきます。

以下に問題のコードを書かせていただきます。

@consumer=OAuth::Consumer.new("コンシューマー・キー","コンシューマー・シークレット", {
  :site=>"http://api.twitter.com"
})
@request_token=@consumer.get_request_token
session[:request_token]=@request_token
redirect_to @request_token.authorize_url

以下にこのコードを実行した際のrailsのログを書かせていただきます。

Redirected to http://api.twitter.com/oauth/authorize?oauth_token=F6RVr8ksA5EJxLxiqjRAnvobPkK6Yd7yffwrYNHeLM
Completed 406 Not Acceptable in 671ms

結果としてブラウザには何も表示されません。なぜこのような結果になるのでしょうか?気づいた点がありましたら、ご指摘いただけると幸いです。

回答

この方法で現象があまり分かりませんが、この文章に従って、twitter、facebook、googleでログインすることが簡単にできます:

http://railscasts.com/episodes/304-omniauth-identity?view=asciicast

編集 履歴 (0)
  • ご回答ありがとうございます。
    私もhttp://qa.atmarkit.co.jp/q/2188をみてominiauthを使い始めました。結果的にエラーの原因はtwitter側の設定でreadonlyにしてたからでした。
    -

ログイン場面に限ってはエラーメッセージの説明については、あいまいにし、具体的に何を間違えたのかをユーザに伝達すべきではない。例えば、数組のユーザIDとパスワードを用いて、ログインを試行した結果、以下のメッセージが表示されたとする。

1組目のエラーメッセージ:ユーザIDが正しくありません

2組目のエラーメッセージ:パスワードが正しくありません

3組目のエラーメッセージ:ユーザIDが正しくありません

これらのメッセージから、1組目と3組目のユーザIDは存在せず、2組目に入力したユーザIDは存在することが判明してしまう。

このように具体的な内容をエラーメッセージに含めることは、攻撃の手がかりを与えてしまうことになり避けるべきである。上記の場合は「ユーザIDまたはパスワードが正しくありません」とした方がよい。

http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/101.html

http://www.witdeals.com/products_new/c-73.html

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。