Как я могу запросить HTTP к тому же серверу токен доступа? - PullRequest
0 голосов
/ 23 марта 2019

Хотя я хочу получить токен доступа после запроса, я попал в тупиковую ситуацию.В разделе создания пользователя нет проблем.Когда я смотрю после тупика в моей базе данных, новый пользователь был написан здесь.После тупика я должен очистить кеш и перезагрузить сервер, иначе проект не запустится.Что я могу сделать?

Контроллер:

public function first_step_register(FirstRegisterRequest $request){

    try {
        $user = User::firstOrCreate([
            'name' => $request->name,
            'email' => $request->email,
            'surname' => $request->surname,
            'phone' => $request->phone,
            'role_id' => $request->role,
            'password' => Hash::make($request->password),
        ]);
        if ($user){

            $http = new Client();

            $response = $http->post(route('passport.token'), [
                'form_params' => [
                    'grant_type' => 'password',
                    'client_id' => '2',
                    'client_secret' => 'T8X7xNsgmw7LEqkGDwk1PhVnWO2NepqT7y48SodE',
                    'username' => $request->email,
                    'password' => $request->password,
                    'scope' => '',
                ],
            ]);

            return response([
                'data' => new FirstRegisterResource($user),
                'token' => json_decode((string) $response->getBody(), true),
            ], Response::HTTP_CREATED);
        }
        else{
            return response([
                'error' => 'Something went wrong, not created'
            ], Response::HTTP_NOT_IMPLEMENTED);
        }
    } catch (\Exception $e) {
        report($e);
        return response([
            'error' => $e
        ],Response::HTTP_NOT_IMPLEMENTED);
    }
}

1 Ответ

0 голосов
/ 23 марта 2019
 public function login(LoginRequest $request){
    try{
        $user = User::where('email', $request->email)->first();
        if ($user){
            if(Hash::check($request->password, $user->password)){
                return response([
                    'data' => new EmailVerificationResource($user)
                ],Response::HTTP_ACCEPTED);
            }
            else {
                return response([
                    'error' => 'These password does not match with email.'
                ],Response::HTTP_NOT_ACCEPTABLE);
            }
        }else{
            return response([
                'error' => 'These email does not match our records.'
            ],Response::HTTP_NOT_ACCEPTABLE);
        }
    }
    catch (\Exception $e){
        report($e);
        return response([
            'error' => $e
        ],Response::HTTP_UNAVAILABLE_FOR_LEGAL_REASONS);
    }
}
...