daou/cakephp-auth0-jwt-auth

CakePHP 3 插件,用于使用 Auth0 的 PHP SDK 进行认证

安装: 181

依赖: 0

建议: 0

安全: 0

星标: 2

关注者: 2

分支: 1

公开问题: 0

类型:cakephp-plugin

1.0.9 2019-07-19 09:46 UTC

This package is auto-updated.

Last update: 2024-09-22 00:41:07 UTC


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