OAuth 2.0 + PKCE
認可コードフローとPKCE(S256)により、Client Secretを晒すことなく安全にログインを実装します。
OAuth 2.0とPKCEに対応した認可コードフローで、Karotterアカウントによるログインとアカウント登録をWordPressサイトに追加します。設定はClient IDとClient Secretを入力するだけ。外部ライブラリへの依存はありません。
マーケティング機能や余計な管理画面を増やさず、ログイン導入に必要な要素だけに絞りました。
認可コードフローとPKCE(S256)により、Client Secretを晒すことなく安全にログインを実装します。
block.jsonベースの軽量ブロック。Client ID未設定の状態でも、編集画面にボタンのプレビューが表示されます。
[karotter_login mode="login"] を貼るだけで、テーマを問わず好きな位置に設置できます。
初回ログイン時にWordPressアカウントを自動作成。既存のメールアドレスとも自動で紐付けます。
エンドポイントURLとレスポンス項目名を管理画面から調整可能。API仕様の変更にも追従できます。
外部ライブラリに依存しない実装。フロントエンドの読み込み速度にほとんど影響を与えません。
ボタンをクリックしてからログインが完了するまでの流れです。すべてサーバー側で完結し、Client Secretがブラウザに露出することはありません。
設置したボタンから、ログインまたはアカウント登録のどちらのモードで開始するかが決まります。
サイトが state とPKCEのcode_challengeを発行し、Karotterの認可画面(/api/oauth/authorize)へ遷移します。
Karotter側でユーザーがアプリの利用を許可すると、登録済みのリダイレクトURIへ認可コードとともに戻ります。
認可コードをアクセストークンに交換し(/api/oauth/token)、続けてユーザー情報を取得します(/api/oauth/userinfo)。
対応するWordPressアカウントを検索し、無ければ自動作成してログイン状態にします。
ブロックでもショートコードでも、同じ見た目のボタンを設置できます。
// 固定ページや投稿本文に貼り付け
[karotter_login mode="login"]
// 登録ボタンとして使う場合
[karotter_login mode="register" text="今すぐ登録"]
// block.json (抜粋)
{
"name": "karotter-login/button",
"attributes": {
"mode": { "default": "login" }
}
}
技術者でなくても迷わないよう、やさしい手順ガイドも用意しています。
Karotterの管理画面でリダイレクトURIを登録し、機密クライアントとして作成します。
発行されたClient IDとClient Secretを控えます。
「Karotter Login」の設定画面に貼り付けて保存します。
ブロックまたはショートコードで、ログイン/登録ボタンをページに追加します。
写真つきのやさしい解説は 使い方ガイド をご覧ください。自動アカウント作成の可否や権限グループも設定画面から変更できます。
WordPress 5.9以降、PHP 7.4以降に対応しています。
できます。標準のログイン画面やほかのログイン手段と共存し、Karotterログインは追加の選択肢として設置されます。
scopeに offline_access を含めると発行され、ユーザーメタに保存されます。トークン更新用のヘルパーメソッドも用意しています。
プラグイン本体はGPLv2ライセンスで無償配布しています。Karotter側の利用条件は別途Karotterの規約をご確認ください。
ZIPをダウンロードしてアップロードするだけ。設定は数分で終わります。