我使用插件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'
答案 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]