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

问题描述 投票:1回答:1

我很清楚,当涉及到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);
}

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

php laravel
1个回答
0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.