実装の面倒くさい度

Google == LINE == GitHub == FaceBook < Twitter

Google

認証に使うだけなら審査は不要

LINE

特に何もなし

GitHub

OpenIDに対応していないのでユーザーIDやアイコン画像を取得するには別のエンドポイントを叩く必要あり

FaceBook

こちらもOpenIDに対応していないのでユーザーIDやアイコン画像を取得するには別のエンドポイントを叩く必要あり。開発者サイトのUIがわかりにくい。

Twitter

アプリの審査はないが、開発者アカウントを作成するときに英語でいろいろ回答しなければいけない。最終的には承認してもらえるけど結構リジェクトされて面倒くさい。

こちらもOpenIDに対応していないのでユーザーIDやアイコン画像を取得するには別のエンドポイントを叩く必要あり。SSLを前提としていないOAuth1.0なのでリクエストに署名する必要あり。署名作成方法についてはここで解説するよりも公式ドキュメントを読んだほうが確実なのでこれに従う。値の例が書いてあるので署名作成関数を作って同じ値になるか確かめたほうが効率が良い。

state

stateパラメータによってユーザーの識別が行える。OAuth1.0ではこのパラメータはないので、ユーザーログイン用URLを作成するときに発行されたoauth_tokenを代わりに使用する。

結論

OAuth1.0は面倒くさい