福岡のIT系の会社で働くエンジニアのブログです。

技術雑記

【baserCMS】Googleアカウントで管理画面へログインするプラグイン【プラグイン】

Twitter bookmark Facebook LINE Pocket Feedly RSS

※ この記事は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アカウントと同じメールアドレスで登録しておいてください。
 

「認証情報を作成」から「OAuth 2.0 クライアント ID」を選択

baserCMS 設定画面に表示されている各URLをGoogle Cloud Console の「承認済みの JavaScript 生成元」「承認済みのリダイレクト URI」に登録します。

 

生成された 「クライアントID」「クライアントシークレット」をbaserCMSの設定画面へそれぞれセットして保存します。

 

baserCMS管理画面よりログインしたいユーザーを作成します。(既に作成済みのユーザーでもOKです)
その時、メールアドレスをGoogleアカウントと同じメールアドレスで登録しておいてください。

一旦baserCMS管理画面をログアウトすると、ログイン画面下部に「Googleアカウントでログイン」ボタンが表示されます。

 

 

TODO・その他

  • Google Cloud Consoleへ登録後、少し時間がかかりますのでログインで認証エラーになる場合は、しばらく待ってから再度ご確認ください。
  • ローカル環境でテストするときはngrokなどを使うと便利です♪
  • 現状は認証後、メールアドレス一致にしているのでユーザー識別子とか使うなどもう少し工夫が必要かも?
  • ログインボタンのデザインをそれっぽくなんとかしたい
  • 今風に作るなら、Firebase Authentication とかで各種SNSログイン対応にするべきだろうね、多分…

お約束

自己責任でお願いします。

baserCMS関連書籍

Twitter bookmark Facebook LINE Pocket Feedly RSS