我有一個與我的自定義身份驗證方法(例如,不使用內置Cake3 PasswordHasher盡我所願)連接FriendsOfCake CRUD + JWT的問題。CakePHP 3.x + CRUD + JWT與自定義身份驗證
我儘可能地跟着http://www.bravo-kernel.com/2015/04/how-to-add-jwt-authentication-to-a-cakephp-3-rest-api/,但我的設置不同,我永遠不會通過API註冊用戶,我只需要生成一個用戶名和密碼令牌。
我可以去使用我下面的功能(有一些注意事項)
但我有兩個問題產生的令牌:
1),該怎麼辦與令牌?它似乎沒有被添加到會話中,在令牌發佈之後,我如何在每個請求中包含這些內容?
2)根據布拉沃內核文章標記方法應加UsersController,但是當我這樣做,我得到
"message": "Action \"token\" has not been mapped",
然後,如果我把它映射到一個CRUD方法,如添加,然後它的工作原理,但它也在我的用戶表中創建一個空行,這真的不是我想要的。
令牌方法是:
public function token()
{
if($this->request->is('post')) {
//returns $user object or false
$query = $this->Users->_checkUser($this->request->query);
if ($query) {
$this->set('data', [
'id' => $query->id,
'token' => $token = \JWT::encode(
[
'id' => $query->id,
'exp' => time() + 604800
],
Security::salt())
]);
$this->Crud->action()->config('serialize.data', 'data');
} else {
throw new UnauthorizedException('Invalid username or password');
}
}
return $this->Crud->execute();
}
我在努力尋找比上述所以任何提示,以我要去哪裏錯了鏈接之外的任何例子是極大的讚賞:)
明白了 - 最後我只是禁用了該動作的CRUD,並讓JSONView爲它返回json,因此它不會創建表格行。 路線的事情是什麼失蹤 - 謝謝:) – Voycey