Laravel将自定义代码添加到AuthController。 PHP

时间:2018-03-06 07:52:51

标签: php laravel

对于Laravel来说,我很清楚我现在已经尝试让它工作了一段时间并且在出错后刚刚出错。

我的最终目标是在注册时运行一些自定义代码,将密码以纯文本(作为示例)放入数据库(作为示例)。这是因为我需要将密码发送到API,这将在另一个平台上为它们创建帐户。

这是我正在使用的代码:

/**
     * Handle a registration request for the application.
     *
     * @param RegisterRequest $request
     * @param RoleRepository $roles
     * @return \Illuminate\Http\Response
*/
public function postRegister(RegisterRequest $request, RoleRepository $roles)
{
    // Determine user status. User's status will be set to UNCONFIRMED
    // if he has to confirm his email or to ACTIVE if email confirmation is not required
    $status = settings('reg_email_confirmation')
        ? UserStatus::UNCONFIRMED
        : UserStatus::ACTIVE;

    $role = $roles->findByName('User');

    // Add the user to database
    $user = $this->users->create(array_merge(
        $request->only('username', 'password'),
        ['status' => $status, 'role_id' => $role->id]
    ));

    event(new Registered($user));

    //My Custom Code
    $conn = mysqli_connect('localhost', 'u_dev', 'dbpassword', 'dev');

    $stmt = $conn->prepare('INSERT INTO ironlogin (ironlogin_password) VALUES (?)');
    $stmt->bind_param('s', $ironPassword);

    $stmt->execute();
    $stmt->close();
    $conn->close();
    //End My Custom Code

    $message = settings('reg_email_confirmation')
        ? trans('app.account_create_confirm_email')
        : trans('app.account_created_login');

    return redirect('login')->with('success', $message);
}

我仍然坚持如何将用户密码放入该数据库中。例如。

1 个答案:

答案 0 :(得分:0)

我强烈建议以纯文本格式存储密码,但我相信你知道这不是个好主意!

您可以轻松扩展或修改注册控制器,以便在创建用户之前/之后为create方法添加额外的逻辑,或者将其作为作业发送,因为您可以访问原始文件原始密码。

https://github.com/laravel/laravel/blob/master/app/Http/Controllers/Auth/RegisterController.php

编辑:上面的链接是你要编辑的控制器的github版本!