※ この記事は2022年baserCMSアドベントカレンダーの記事です。
Googleアカウントで管理画面へログインするプラグインを作成しました。
※ Google API Client Library for PHP を利用しています。
大した機能はありませんがSSOとかSAMLとかログイン認証の勉強がてらにやってみた、というところです。
ソースコード
ソースコードはGitHubで公開中です。
https://github.com/kaburk/BcGoogleLogin
ソースをgit clone、または、
https://github.com/kaburk/BcGoogleLogin/releasesよりzipファイルをダウンロードしてください。
プラグインのインストール方法・使い方
- 圧縮ファイルを解凍後、BASERCMS/app/Plugin/BcGoogleLogin に配置します。
- 管理システムのプラグイン管理に入って、表示されている BcGoogleLogin プラグイン を有効化して下さい。
- 設定画面( /admin/bc_google_login/bc_google_logins/config ) にて APIキーなどを設定してください。
- Google Cloud Console にアクセスして、認証情報を設定します。
- 「認証情報を作成」から「OAuth 2.0 クライアント ID」を選択してウェブアプリケーションの「クライアントID」「クライアントシークレット」を取得します。
- 設定画面に表示されている各URLをGoogle Cloud Console の「承認済みの JavaScript 生成元」「承認済みのリダイレクト URI」に登録します。
- 設定画面「クライアントID」「クライアントシークレット」をセットして保存します。
- ※ Google Cloud Consoleへ登録後、少し時間がかかりますのでログインで認証エラーになる場合は、しばらく待ってから再度ご確認ください。
- 管理画面のログイン画面にGoogleでログインボタンが追加されます
- baserCMS管理画面よりログインしたいユーザーを作成します。
その時、メールアドレスをGoogleアカウントと同じメールアドレスで登録しておいてください。
baserCMS管理画面よりログインしたいユーザーを作成します。(既に作成済みのユーザーでもOKです)
その時、メールアドレスをGoogleアカウントと同じメールアドレスで登録しておいてください。
一旦baserCMS管理画面をログアウトすると、ログイン画面下部に「Googleアカウントでログイン」ボタンが表示されます。
TODO・その他
- Google Cloud Consoleへ登録後、少し時間がかかりますのでログインで認証エラーになる場合は、しばらく待ってから再度ご確認ください。
- ローカル環境でテストするときはngrokなどを使うと便利です♪
- 現状は認証後、メールアドレス一致にしているのでユーザー識別子とか使うなどもう少し工夫が必要かも?
- ログインボタンのデザインをそれっぽくなんとかしたい
- 今風に作るなら、Firebase Authentication とかで各種SNSログイン対応にするべきだろうね、多分…
お約束
自己責任でお願いします。
baserCMS関連書籍
|
|