みんなのちからになりたい

コピペでブログラムつくっていきたい

OpenID Connect (Google+ Signin)で地味にはまる

OpenIDが2015/4/20で使えなくなってOpenID Connect (Google+ Signin)に移行するということで、googleアカウントでサインインするようなシステムは改修しなくちゃならないようで、今回たまたま別件で新規でgoogleアカでサインインさせてちょろっとやるシステムを作るので、いい勉強になると思ってやってみたら地味にはまったところをメモ。

profile取得する時にfailed to fetch user profileが出る

だいたい "google oauth2 node" みたいなキーワードでぐぐって参考になるところ探すとぶちあたるのが

suspicious.website

これで、この通りにやっていけば認証まではかんぜんに迷いなくいけるのですごいいいサンプルである。

ただ、認証が通ってprofileを取得しようとするところでfailed to fetch user profileが出て取得できない。

ざっくりいうと、profile取ってくるエンドポイントが https://www.googleapis.com/plus/v1/people/me なので、Developers ConsoleでGoogle+ APIを有効にしないといけない。

google appsのアカウントだとdisplayNameとか取ってこれない

結論から言うと取ってこれる。

大抵のOAuthやOpenConnectIDの便利モジュールだとscopeをデフォルトで指定しなくてもよく、実際普通のgoogleアカウントだと普通に取ってこれる。

ただ、appsのアカウントだとそれだと認証は通るけどidとphoto以外はほぼ空で取得されるので、scopeを指定する必要があるという感じ。

結論

勉強になる。