10
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Googleでのソーシャルログインを簡単に試してみる

Posted at

APIの開発でGoogleログインを実装する必要がありました。
無知な私は当初、「画面(フロントサイド)がないとすぐ確認できないんじゃん?」と尻込みしていたわけですが。
意外と簡単に機能を試すことができたので、その手順を残しておきます。

前提

  • googleアカウント取得済み
  • 開発段階でgoogleログインの動きを確認したいレベル
  • googleアカウントからemail情報を取得するのを目標とする

Googleログインに必要な情報を設定する

  • クライアントID
  • クライアントシークレット
  • リダイレクトURI

Googleログインの一連の流れを実現するために上記を設定・取得します。
私は個人のGoogleアカウントを使って試しましたが、組織のアカウントでも基本的に問題はないのではないかと思います。
今回の範囲では、特に課金の要求などはありませんでした。

1. プロジェクトの作成を行う

  • 下記のURLのプロジェクトを作成 ボタンから

  • プロジェクト名は自分が分かればOK
  • 以下のような画面になればプロジェクトの作成は完了
    image.png

2. 認証情報を設定する

  • メニューのAPIとサービス > 認証情報より認証情報設定ページへ
  • 認証情報を作成ボタンからOAuth クライアントID を選択
  • アプリケーションの種類を選んだら下記のような画面になる
    image.png
  • 名前
    • わかりやすいもの
  • 承認済みのリダイレクトURI
    • とりあえず試してみたい段階であれば、
      • googleのhttps://www.google.co.jp/ を使わせてもらう
      • http://localhost/(動いている場合)
    • 本番運用するならきちんとしたURIを設定してください
  • 作成ボタンを押すと、「クライアントID」「クライアントシークレット」が取得できる

3.OAuth同意画面を設定する

  • APIとサービス > OAuth同意画面より設定ページへ
    • ここで設定する内容が、よくソーシャルログイン画面で見る「〇〇が次の許可をリクエストしています」の画面に反映される
  • アクセスできるユーザーのデータは、デフォルトでは「email」「profile」「openid」のみの模様
    image.png
  • 保存ボタンを押して設定完了

GoogleのAPIにアクセスする

設定が完了したので、実際に動きを確かめていきます。

1.codeの取得

  • 以下のURLを組み立ててアクセスする

    • https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=<クライアントID>&redirect_uri=<リダイレクトURI>&scope=<スコープ>&access_type=offline&approval_prompt=force
    • スコープには email profile などが入る(%20で複数連結も可能)
  • アクセスすると、以下のようなアカウント選択画面に遷移するので、選択して移動する
    image.png

  • リダイレクトURIに設定したページに遷移するので、code パラメータを取得する
    image.png

2.トークンの取得

  • 以下のURLにPOSTでアクセスする
    • https://www.googleapis.com/oauth2/v4/token
    • Content-Type
      • application/x-www-form-urlencoded
    • Body
      • code:<コード>
      • client_id:<クライアントID>
      • client_secret:<クライアントシークレット>
      • redirect_uri:<リダイレクトURI>
      • grant_type:authorization_code
      • access_type:offline
  • curlコマンド打つのは大変なので、 ARC というchrome拡張機能を使うのがおすすめ
  • 成功したら、 access_token が取得できる

3.アクセストークンを使ってgoogleのユーザー情報を取得する

  • 以下のURLにGETでアクセスする
    • https://www.googleapis.com/oauth2/v1/userinfo?access_token=<アクセストークン>
  • 後半の手順1.で設定したスコープの情報が取れれば成功!

最後に

以上、とりあえずGoogleログインの動きを確認したいよーという場合の実行手順でした。
開発の助けになれば幸いです。

参考

https://himakan.net/websites/how_to_google_oauth
https://qiita.com/kite_999/items/bddd62c395f260e745bc
https://developers.google.com/identity/protocols/OAuth2
https://developers.google.com/youtube/v3/guides/auth/server-side-web-apps?hl=ja

10
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?