现在我陷入了一些laravel 5.2基础。我想解决的问题是,我想在注册过程中为用户添加一个api-key,这有效,但它现在不安全。
现在我已将API-Key添加到注册表单中,但这可能会使攻击者可以在表单发送时更改它。是否有可能从表单中删除该字段,并在框架处理之前将其添加到请求中?或者其他什么我可以在插入数据库后向注册用户添加api密钥?
非常感谢您的帮助!
答案 0 :(得分:1)
如果您使用的是Laravel的默认身份验证系统,则可以像这样修改create
方法:
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'api_key' => code to generate your random string; // add this line
'password' => bcrypt($data['password']),
]);
}
答案 1 :(得分:0)
您可以使用此PHP-JWT package作为您的功能。
用PHP编码和解码JSON Web令牌(JWT)的简单库,符合RFC 7519。
基本上在身份验证上,您可以在设备上本地创建和存储令牌。然后,每次拨打服务器时,都会检查该令牌并确保用户是他们所说的人。
如果需要,您可以存储令牌到期,但由于数据存在于令牌中,因此不需要。
通常,JWT用于无状态应用程序,因此您需要摆脱服务器会话的概念。