Laravel 5.2在不添加表单的情况下将数据添加到注册

时间:2016-01-18 10:52:57

标签: php laravel laravel-5.2

现在我陷入了一些laravel 5.2基础。我想解决的问题是,我想在注册过程中为用户添加一个api-key,这有效,但它现在不安全。

现在我已将API-Key添加到注册表单中,但这可能会使攻击者可以在表单发送时更改它。是否有可能从表单中删除该字段,并在框架处理之前将其添加到请求中?或者其他什么我可以在插入数据库后向注册用户添加api密钥?

非常感谢您的帮助!

2 个答案:

答案 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用于无状态应用程序,因此您需要摆脱服务器会话的概念。