如何使用BzUtils插件在cakephp2中通过Token进行身份验证。

时间:2015-10-21 09:25:58

标签: php cakephp cakephp-2.0

我使用插件BzUtils插件创建令牌进行身份验证。 file boostrapt:

CakePlugin :: load('BzUtils');

文件AppController:

public function beforeFilter() {
        $this->Auth->authenticate = array(
            'Form' => array(
                'fields' => array(
                    'username' => 'username',
                    'password' => 'password'
                ),
                'userModel' => 'User',
                'scope' => array(
                    'User.active' => 1,
                )
            ),
            'BzUtils.JwtToken' => array(
                'fields' => array(
                    'username' => 'username',
                    'password' => 'password',
                ),
                'header' => 'AuthToken',
                'userModel' => 'User',
                'scope' => array(
                    'User.active' => 1
                )
            )
        );

在RestUsersController中执行操作:

public function login() {
        if ($this->Auth->login()) {
            $user = $this->Auth->user();
            $token = JWT::encode($user, Configure::read('Security.salt'));
            $this->set('user', $user);
            $this->set('token', $token);
            $this->set('_serialize', array('user', 'token'));
        } else {
            throw new NotAcceptableException(__('Email or password is wrong.'));
        }
    }

网址:http://kcxcode1.dev/restusers/login

错误:致命错误:第42行的C:\ xampp \ htdocs \ koreconx \ app \ Controller \ RestUsersController.php中找不到类'JWT'

2 个答案:

答案 0 :(得分:0)

  

错误:致命错误:Class' JWT'

中找不到

错误非常明显。 您需要适配器中使用的php-jwt lib。通过composer添加它或手动添加它。

composer require firebase/php-jwt   

我已经使用该依赖更新了插件composer.json,但只有在那里建议。我还更新了readme.md,在那里添加了适配器以及指向它的文章的链接。而且我也合并了发展到掌握。

看起来您正在使用my article,它在第2段中提到需要php-jwt甚至链接到它。

答案 1 :(得分:0)

对不起你,我错了Declaration of JwtTokenAuthenticate::getUser() should be compatible with BaseAuthenticate::getUser($request) [APP\Plugin\BzUtils\Controller\Component\Auth\JwtTokenAuthenticate.php, line 123]