daou / cakephp-auth0-jwt-auth
CakePHP 3 插件,用于使用 Auth0 的 PHP SDK 进行认证
1.0.9
2019-07-19 09:46 UTC
Requires
- php: >=5.6.0
- auth0/auth0-php: ~5.1
- cakephp/cakephp: ^3.5
README
CakePHP 3 插件,用于使用 Auth0 的 PHP SDK 进行认证
CakePHP JWT 认证插件
包含用于使用 Auth0 PHP SDK 和 JSON Web Tokens 进行认证的 AuthComponent 的 authenticate 类的插件。
安装
composer require daou/cakephp-auth0-jwt-auth
使用
在你的应用程序的 config/bootstrap.php
文件中添加
// In config/bootstrap.php Plugin::load('Daou/Auth0JwtAuth');
或使用 cake 的控制台
./bin/cake plugin load Daou/Auth0JwtAuth
配置
设置 AuthComponent
// In your controller, for e.g. src/Api/AppController.php public function initialize() { parent::initialize(); $this->loadComponent('Auth', [ 'storage' => 'Memory', 'authenticate' => [ 'Daou/Auth0JwtAuth.Auth0' => [ 'fields' => [ 'username' => 'auth0id' ] 'auth0ClientSecret' => '__CLIENT_SECRET__', // only for HS256 'auth0Audience' => '__API_AUDIENCE__', 'auth0Domain' => '__DOMAIN__' ] ], 'unauthorizedRedirect' => false, 'loginAction' => false ]); }
工作
认证类会检查 HTTP_AUTHORIZATION
环境变量中的令牌
它会检查是否通过 Authorization
请求头传递了令牌。其值应采用 Bearer <token>
的形式。
已知问题
某些服务器在设置 Authorization
头时不会填充 $_SERVER['HTTP_AUTHORIZATION']
。因此,您需要确保设置 $_SERVER['HTTP_AUTHORIZATION']
或 $_ENV['HTTP_AUTHORIZATION']
。
例如,对于 apache,您可以使用以下方法
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
备注
如果您对没有 Auth0 的 JWT 感兴趣,请查看 Admad 的 CakePHP JWT 认证插件 这里。
许可证
MIT. 查看 LICENSE。