我正在尝试设置vue.js登录页面(前端)与Larave8(后端)使用Passport和GuzzleHttp。
oAuth/Token:工作正常(失眠测试) userData:工作正常(失眠测试)
测试域由本地虚拟主机(XAMPP)设置。
我的控制器看起来像:
<?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路由如下所示:
<?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“。它应该显示持有者令牌。
提前感谢
发布于 2020-10-22 19:40:35
您需要获取->getContents()才能获取内容。
$response = $response->getBody()->getContents();它将返回json。
https://stackoverflow.com/questions/64481391
复制相似问题