【问题标题】:How can I HTTP request to the same server for access token?我如何向同一台服务器发出 HTTP 请求以获取访问令牌?
【发布时间】:2019-03-23 13:34:28
【问题描述】:

虽然我想在请求后获取访问令牌,但我遇到了死锁情况。用户创建部分没有问题。当我处理我的数据库死锁时,新用户被写在这里。死锁后,我必须清理我的缓存并重新启动服务器,否则项目将无法运行。我能做什么?

控制器:

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);
    }
}

【问题讨论】:

标签: laravel laravel-passport


【解决方案1】:
 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);
    }
}

【讨论】:

    猜你喜欢
    • 2018-08-22
    • 2020-10-29
    • 2016-05-15
    • 1970-01-01
    • 2019-09-11
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 2019-02-02
    相关资源
    最近更新 更多