OAuth1.0をクライアントサイドのJavaScriptだけでやってはいけない理由
OAuth1.0をJavaScriptだけでやろうとすると、consumer keyやconsumer secretが漏れちゃってよろしくない。それはすぐわかる。ではなんでこれらが漏れるとよくないのか。そしてなぜOAuth2.0ではJavaScriptのみでOAuthができるのか。
OAuth1.0はcallback URLを指定するときに、アプリケーション登録時に設定したcallback URLと別のURLを指定しても、認証後そのURLにリダイレクトする。これだとconsumer keyとconsumer secretが漏れた場合に、アプリを偽装してアクセストークンを取得される可能性がある。
で、OAuth2.0はそれを許さない。callback URLがアプリケーション登録に設定したcallback URLと前方一致しないとダメなので、自分が管理している範囲のURLにしかリダイレクトしないというわけ。なのでOAuth2.0はJavaScriptだけでOAuthしても問題なし。
で、あってるかな。
追記:あってなかった。(コメント参照)