hashandsalt / kirby3-auth0
支持 Kirby 3+ 的 Auth0
v1.0.0
2023-07-22 14:25 UTC
Requires
- auth0/auth0-php: ^8.6
- getkirby/composer-installer: ^1.1
- guzzlehttp/guzzle: ^7.7
- guzzlehttp/psr7: ^2.5
- http-interop/http-factory-guzzle: ^1.2
- nyholm/psr7: ^1.8
- vlucas/phpdotenv: ^5.5
README
这是一个为 K3+ 开发的插件,允许通过 Auth0 进行前端去中心化登录。
安装
手动
将插件文件夹复制到 site\plugins
Composer
composer require hashandsalt/kirby3-auth0
设置
该插件使用 .env 文件来保护 Auth0 凭据。您需要在公共文件夹根目录下创建一个 .env 文件,并包含以下内容(将 XXX 替换为您自己的详细信息)
# Your Auth0 application's Client ID
AUTH0_CLIENT_ID=XXX
# The URL of your Auth0 tenant domain
AUTH0_DOMAIN=XXX
# Your Auth0 application's Client Secret
AUTH0_CLIENT_SECRET=XXX
# A long, secret value used to encrypt the session cookie.
# This can be generated using `openssl rand -hex 32` from your shell.
AUTH0_COOKIE_SECRET=XXX
您应该将此文件排除在 Git 之外。
使用方法
一旦在 Auth0 控制台中设置了配置正确的应用程序,您就可以开始处理用户。在一个控制器(推荐)或模板中,我们可以检查用户是否已登录并获取用户的个人资料
$auth0 = site()->auth0(); $session = $auth0->getCredentials(); $user = $session === null ? null : $session->user;
现在我们可以使用这些信息来创建一个登录/注销切换。一个非常基础的例子
if (is_null($user)) { echo 'You are not logged in</br>'; echo '<p>Please <a href="/login">log in</a>.</p>'; } else { $name = $user['given_name'] ?? $user['nickname'] ?? $user['email'] ?? 'Unknown'; echo '<h1>Welcome ' . $name . '!</h1>'; echo '<p><a href="/logout">log out</a>.</p>'; }
个人资料中还有更多信息,例如用户的 Gravatar 图片。使用 dump($user) 查看其他信息。
选项
更改基本 URI 和 .env 文件的位置
'hashandsalt.auth0.baseUri' => 'https://:3000/', // set to your live domain name on the public server 'hashandsalt.auth0.env' => './',