Laravel 护照颁发访问令牌返回 null

时间:2021-03-22 11:00:11

标签: php laravel oauth laravel-passport

我在 Laravel 护照上遇到了从服务器端发出访问令牌的问题。 所以每当我触发 oauth/redirect 这条路线时,它都会给我代码,但我没有在 oauth/redirect 路线中获得令牌 这是我的重定向和回调方法

/**
     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|void
     */
    public function redirect(Request $request)
    {
        try {
            $request->session()->put('state', $state = Str::random(40));
            // make queries for authenticate to server
            $queries = http_build_query([
                'client_id' => '4',
                'redirect_uri' => 'http://client.test/oauth/callback',
                'response_type' => 'code',
                'scope' => 'view-profile',
                'state' => $state,
            ]);

            return redirect('http://server.test/oauth/authorize?'. $queries);
        } catch (Exception $e) {
            return response()->json(['status' => 'error', 'message' => $e->getMessage()], 422);
        }
    }

    /**
     * @return \Illuminate\Http\JsonResponse
     */
    public function callback(Request $request)
    {
        try {
            $state = $request->session()->pull('state');

            throw_unless(
                strlen($state) > 0 && $state === $request->state,
                InvalidArgumentException::class
            );

            $response = Http::asForm()->post('http://server.test/oauth/token', [
                'grant_type' => 'authorization_code',
                'client_id' => '4',
                'client_secret' => 'akOIqaRI2EjyTRek36YLeUDrBlnCDdGOE2QOzJat',
                'redirect_uri' => 'http://client.test/oauth/callback',
                'code' => $request->code,
            ]);

            $response = $response->json();
            dd($response);
        } catch (Exception $e) {
            return response()->json(['status' => 'error', 'message' => $e->getMessage()], 422);
        }
    }

当我执行 dd($request->code); 时返回 code 但当我执行 dd($response); 时返回 null 对此有什么想法吗?

0 个答案:

没有答案