CakePHP 2 JWT身份验证插件未接收CakeRequest中的标头

insrf1ej  于 2022-11-11  发布在  PHP
关注(0)|答案(2)|浏览(153)

我正在使用CakePHP插件(https://github.com/t73biz/cakephp2-jwt-auth)。我的CakePHP应用程序是2.6.2版。我已经将其添加到AppController中的Auth组件中。

'JwtAuth.JwtToken' => array(
                'fields' => array(
                    'username' => 'email',
                    'password' => 'password',
                    'token' => '_token'
                ),
                'parameter' => '_token',
                'contain' => array(
                    'Organization'
                ),
                'scope' => array(
                    'User.status' => 'A',
                    //'User.frozen' => 0,
                    'User.locked_out' => 0,
                    'Organization.status' => 'A',
                    //'User.failed_sign_ins < 4'

                ),
                'header' => 'X_JSON_WEB_TOKEN',
                'pepper' => 'pepper' // Says pepper because I do not want to show the pepper key I used for my code
            ),

我知道插件运行,因为我在插件的getUser函数中添加了一个die语句,当我执行API请求时,它会显示出来。

public function getUser(CakeRequest $request) {

    $token = $this->_getToken($request);
    if ($token) {
        return $this->_findUser($token);
    }
    return false;
}

这是插件Controller目录下Component目录中JwtTokenAuthenticate.php的一部分函数。当我调试$request时,我没有得到作为请求一部分的头。我使用Postman来测试API和Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjp7ImlkIjoiMTIiLCJzdWIiOiIxMiJ9LCJpYXQiOjE0ODcyNTUxMjYsImV4cCI6MTQ4NzI1ODcyNn0.5hoyXltPmEXIA3eVtJnnn3Dor2lhviej31eZNbaMbow

kxeu7u2r

kxeu7u2r1#

如果我没理解错的话,你是想通过Authorization头传递auth令牌吗?但是根据插件文档,你应该通过X_JSON_WEB_TOKEN头或者_token查询参数来传递。

t5zmwmid

t5zmwmid2#

请将以下代码添加到.htaccess文件中,它将正常工作

<IfModule mod_rewrite.c>
 SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
</IfModule>

相关问题