我有一个项目,我用nodejs做了后端。我做了一个用户注册模块,认证会生成一个令牌!这个令牌需要用在用户必须登录的其他请求中。
使用cakephp 4在前端存储此令牌的最佳方式是什么?
是否存在组件?使用会话存储此令牌是否安全?
如果有人能帮我分析一下这个案子我会很感激的。
这是我的身份验证方法:
public function login()
{
$http = new Client();
if ($this->request->is('post')) {
$response = $http->post(
'http://localhost:8889/api/auth/login',
[
'email' => $this->request->getData("username"),
'password' => $this->request->getData("password"),
]
);
if ($response->getStatusCode() == 401) {
return $this->redirect($this->referer());
}
if ($response->isOk()) {
$json = $response->getJSON();
return $this->redirect(['action' => 'home', 'controller' => 'Pages']);
}
}
}
返回200包含一个accessToken。
1条答案
按热度按时间ig9co6j11#
存储令牌的最佳方式是使用HttpOnly Cookie。
根据Microsoft开发人员网络,HttpOnly是包含在Set-Cookie HTTP响应标头中的附加标志。在生成Cookie时使用HttpOnly标志有助于降低客户端脚本访问受保护Cookie的风险(如果浏览器支持)。
如果您将其存储在LocalStorage/SessionStorage中,则XSS攻击(从Javascript/客户端)很容易获取它
CakePHP 4的做法是这样的:
https://book.cakephp.org/4/en/controllers/request-response.html#creating-cookies