如何在 cakephp 2.10 中使用 JWT?

Posted

技术标签:

【中文标题】如何在 cakephp 2.10 中使用 JWT?【英文标题】:How to use JWT with cakephp 2.10? 【发布时间】:2018-12-14 13:36:17 【问题描述】:

我正在使用 Cakephp 2.10.9 版本并尝试使用基于令牌的身份验证而不是基于会话的身份验证。

我找不到任何关于如何在 CakePHP 2.x 中使用 JWT 的信息。

这是我迄今为止尝试过的。作为第一步,我下载了插件 t73biz/cakephp2-jwt-auth 并将其添加到文件夹 app/Plugin/JwtAuth 中。正如用法中提到的(https://github.com/t73biz/cakephp2-jwt-auth),我在 app/Controller/AppController.php 中添加了以下配置

var $components = array(
        'Auth' => array(
            'authenticate' => array(
                'JwtAuth.JwtToken' => array(
                    'fields' => array(
                        'username' => 'username',
                        'password' => 'password',
                        'token' => 'public_key',
                    ),
                    'parameter' => '_token',
                    'userModel' => 'User',
                    'scope' => array('User.active' => 1),
                    'pepper' => 'sneezing',
                ),
            ),
        ),'Session','RequestHandler','Email','Flash');

根据我过去使用插件的经验,我知道我应该将插件包含在 bootstrap.php 中。

CakePlugin::load('JwtAuth');

我不知道在这之后我应该做什么。有人可以指导我吗?

【问题讨论】:

【参考方案1】:

我认为您没有阅读Authentication 部分

=> 查询字符串参数定义为配置数组中的参数(默认为_token

=>配置数组中定义为header的header内容(默认为X_JSON_WEB_TOKEN

这意味着当您访问任何方法时,您必须通过 JWT toekn 和 query 参数或 Header 请求。

示例查询参数: http://example.com/users/add?_token=THEJWTWEVTOKEN

【讨论】:

以上是关于如何在 cakephp 2.10 中使用 JWT?的主要内容,如果未能解决你的问题,请参考以下文章

CakePHP 3.x JWT 认证服务器

CakePHP2:JWT Auth 的 CORS 预检问题

cakephp 中的 JWT 令牌解码

Cakephp 3.x ADmad/JwtAuth MissingRouteException

使用自定义身份验证适配器时检查 CakePHP 上的登录用户信息

在 Post 方法上获取 401 Unauthorized [前端 - Angular 2 和后端 - Cakephp 3]