Laravel не будет отправлять ответ после успешного создания учетной записи


Laravel не будет отправлять ответ после успешного создания учетной записи

27.10.2020 09:18:15 Просмотров 39 Источник

Я могу сохранить данные в базе данных просто отлично. И тогда я сразу после создания войду в систему этого текущего пользователя с помощью электронной почты. Но он всегда будет посылать запрос. В чем тут может быть проблема?

класс RegisterController расширяет контроллер { используйте AuthenticatesUsers;

protected $redirectTo = '/home';

private $loginProxy;


public function __construct(LoginProxy $loginProxy)
{
    $this->loginProxy = $loginProxy;
    $this->middleware('guest')->except('logout');
}

function apiRegisterUser(Request $request)
{
    $validator = Validator::make($request->all(), [
        'name'     => 'string|max:255',
        'email'    => 'required|string|email|max:255|unique:users',
        'password' => 'required|string|min:6',
    ]);
    if ($validator->fails()) {
        return response()->json(array('code' => 406, 'error' => $validator->messages()), 406);
    } else {
        // Log::channel('abuse')->info('user');
        
        $user = User::create(['name'     => $request['name'],
                              'email'    => $request['email'],
                              'password' => Hash::make($request['password']),
                              'referral_code' => str_random(10)
        ]);
        
        $user->updateLastRoute(1);
        $credentials = $this->loginProxy->attemptLogin($request['email'], $request['password']);

        return response()->json($this->successResponse(200, "Login successfull", $credentials), 200);
    }
}


protected function validator(array $data)
{
    return Validator::make($data, [
        'name'     => 'required|string|max:255',
        'email'    => 'required|string|email|max:255|unique:users',
        'password' => 'required|string|min:6|confirmed',
    ]);
}


protected function create(array $data)
{
    return User::create([
        'name'     => $data['name'],
        'email'    => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

}

У вопроса есть решение - Посмотреть?

Ответы - Laravel не будет отправлять ответ после успешного создания учетной записи / Laravel won't send response after a successful create of an account

Является ответом!
Kamlesh Paul

27.10.2020 09:31:40

используйте функцию auth()->attempt() я не уверен насчет loginProxy но auth()->attempt() это должно сработать

$credentials = [
    "email" => $request['email'],
    "password" => $request['password']
];

if (auth()->attempt($credentials)) {
    return response()->json($this->successResponse(200, "Login successfull", $credentials), 200);
}
Помочь в развитии проекта:
Закрыть X