Google API の OAuth 2.0 認可方式のおさらい

Access Token さえあればいい

Google API を使うためには、Access Token という文字列さえあればOK。ただ、この Access Token を取得するための手続きが複雑というだけである。

Refresh Token

Access Token は使用期限がある。では、切れる度に新たに Access Token 取得の手続きを最初からやりなおすか?それはたいへん面倒。

Refresh Token を渡すと新しい Access Token をすぐに貰える。これだと期限切れでも素早く取り直すことができる。

(※ただし、一定の条件で Refresh Token も切れることはある

Access Token 取得の手続き

ここが複雑なので、「Google API はなんだかややこしい」という印象になってしまう。

大きく分けると3ステップとなる。

  • Client ID の登録
  • 認可画面の表示と Authorization Code の取得
  • Access Token の取得

Client ID の登録

これは Google Developer Console で Webブラウザ上で操作する くわしいやり方はアプリの種別によって異なるが、多くのサイトに書いてあるので調べるとすぐわかる。

https://camo.qiitausercontent.com/ee66a5519c807b84d785a2396af2ab6741a9e0c9/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f313338372f63653163366432642d623330362d386531342d326464612d6639313065666136353862612e706e67

Google APIのAccess Tokenをお手軽に取得する - Qiita より引用)

認可画面の表示と Authorization Code の取得

Access Token を取得するために、Authorization Code を先に取得するが、これも Webブラウザ上で操作する

Client ID の情報と要求 scope あたりを特定の Google OAuth API に送ると、HTTP response header で Location: https://xxx... という返信がくる。

このURLが認可画面の URL である。

ブラウザで開くと、「次のアプリの API 使用を許可しますか?」と出る。許可を押すと Authrization Code がもらえる。

Access Token の取得

Authorization Code を使って、やっと Access Token が得られる。

なぜ複雑に感じるか

「こんなに分かれてる必要なくない?」と最初は思った。

しかし、それは 「アプリ開発者」と「アプリ利用者」を一緒に考えてしまっているから

必要な操作
アプリ開発者 Client ID の取得
アプリ利用者 Authorization Code の取得、Access Token の取得

参考になるサイト