技術系

Googleでログインを実装

技術系

こんにちは、なかにしです。

今回は最近のアプリではスタンダードになっている「Googleでログイン」を実装していこうと思います。

いってみよう!

Googleでログインとは

文字通りGoogleのアカウントを使ってログインできる仕組みです。

ボタンを押すとGoogleのアカウントを選ぶ画面に遷移し、ログインします。

▽こんなんです。

やり方の概要

①認証用のGoogle APIを発行
②APIと自分のサイトをつなぐ
③認証機能付きのボタン設置

認証の仕組みやボタンのテンプレートはGoogle様が用意してくれているので、10分程度でできます!

実装

Google様がこちらでやり方を説明してくれていますので、それにそっていきます。

まず Google API Console で認証用のAPIを発行します。

▽新しいプロジェクトを選択して…

プロジェクト名とかもろもろ設定します。

▽「APIとサービス」の「認証情報」内、「同意画面を構成」

▽外部を選んで…

▽「アプリ名」「ユーザーサポートメール」「デベロッパーの連絡先情報」を設定

▽「認証情報を作成」→「OAuthクライアントID」

▽今回の種類は「ウェブアプリケーション」

▽アプリ名を適当につけ、「承認済みのJS」の欄に
「localhost」「localhost:開発時のポート」を記入

※ローカル開発の場合、
ここでlocalhostを設定しないとテストができないです!

▽作成ボタンを押して作成すると、
クライアントIDが発行されます。

これを後で使います!!

▽適当なHTMLを用意し、
以下スクリプトを追記します。

<script src="https://accounts.google.com/gsi/client" async defer></script>
<div id="g_id_onload"
     data-client_id="APIのキー"
     data-login_uri="<ログイン後に遷移させたいURL>"
     data-auto_prompt="false">
</div>
<div class="g_id_signin"
     data-type="standard"
     data-size="large"
     data-theme="outline"
     data-text="sign_in_with"
     data-shape="rectangular"
     data-logo_alignment="left">
</div>

「APIのキー」は先ほど取得した認証APIのキー、
「ログイン後に遷移させたいURL」にログイン後のURLを記載します。

▽今回は同じ階層に作った「next.html」に遷移させます!

<!DOCTYPE html>
<html lang="ja">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>

  <body>
    <script src="https://accounts.google.com/gsi/client" async defer></script>
    <div id="g_id_onload" data-client_id="<APIのキー>"
      data-login_uri="/next.html" data-auto_prompt="false">
    </div>
    <div class="g_id_signin" data-type="standard" data-size="large" data-theme="outline" data-text="sign_in_with"
      data-shape="rectangular" data-logo_alignment="left">
    </div>
  </body>

</html>
<!DOCTYPE html>
<html lang="ja">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>

  <body>
    <p>ネクストページです。</p>
  </body>

</html>

サーバを起動して「index.html」に接続すると…

▽じゃん!

ログインボタンが出ました!
押すと、Googleアカウントでログインできます。

▽ログイン後に「next.html」に遷移しました!
想定通りです。

さいごに

ログインボタンのデザインはいじれるっぽいので、
自サイトに導入の際はおしゃれにカスタマイズしようと思います。

Googleのマニュアルは本当に読みやすくて助かります。
さすが天下のGoogle様ですね。

今回はただログインできるようにしただけなので、
今後はログインしてないと見れないようにしたり
DBとつないだりしていきます!

今回はここまで!
Enjoy Hacking!!

タイトルとURLをコピーしました