首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 8/Passport/GuzzleHttp APO返回200 OK,但无正文响应

Laravel 8/Passport/GuzzleHttp APO返回200 OK,但无正文响应
EN

Stack Overflow用户
提问于 2020-10-22 19:35:34
回答 1查看 255关注 0票数 0

我正在尝试设置vue.js登录页面(前端)与Larave8(后端)使用Passport和GuzzleHttp。

oAuth/Token:工作正常(失眠测试) userData:工作正常(失眠测试)

测试域由本地虚拟主机(XAMPP)设置。

我的控制器看起来像:

代码语言:javascript
复制
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class AuthController extends Controller
{

    public function login (Request $request)
    {
        $http = new \GuzzleHttp\Client;
        try {
            $response = $http->post('http://testapp.test/oauth/token', [
                'form_params' => [
                    'grant_type' => 'password',
                    'client_id' => 2,
                    'client_secret' => 'TOKEN',
                    'username' => $request->username,
                    'password' => $request->password,
                ]
            ]);
            return $response->getBody();
        } catch (\GuzzleHttp\Exception\BadResponseException $e) {
            if ($e->getCode() === 400) {
                return response()->json('Invalid Request. Please enter a username or a password.', $e->getCode());
            } else if ($e->getCode() === 401) {
                return response()->json('Your credentials are incorrect. Please try again', $e->getCode());
            }
            return response()->json('Something went wrong on the server.', $e->getCode());
        }


    }

}

我的api路由如下所示:

代码语言:javascript
复制
<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Route::post('/login', 'App\Http\Controllers\AuthController@login');

当我通过Insomnia用用户名/密码向testapp.test/api/login发出Post请求时,它返回200OK,但只显示消息"No body return for response“。它应该显示持有者令牌。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2020-10-22 19:40:35

您需要获取->getContents()才能获取内容。

代码语言:javascript
复制
$response = $response->getBody()->getContents();

它将返回json。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64481391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档