[英]Getting a 400 Bad Request in Postman with Laravel Passport
[英]Laravel passport not responding via postman
請參閱下面的UserController代碼。 我試圖通過api使用VUEJS ,所以我已經創建了用於在api.php進行注冊和登錄的路由 。 為了測試im嘗試通過郵遞員傳遞數據,並通過http:// localhost:8000 / api / register使用Accepted application / json和Content-type與application / json傳遞數據 。 我通過正文傳遞數據作為表單數據。 問題是,當我嘗試發送數據時,郵遞員連續發送數據而沒有響應,而當我取消請求時,端口8000不再起作用。 因此,我必須停止服務器並再次運行。 誰能告訴我我的代碼中有錯誤嗎?我正在使用laravel 5.7
<?php
namespace App\Http\Controllers\Api;
use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Hash;
class UserController extends Controller
{
public function register(Request $request){
$request->validate([
'name' => 'required',
'email'=> 'required',
'password'=> 'required'
]);
//add some cde that what happen if validation fils
$newUser = User::firstOrNew(['email'=> $request->email]);
$newUser->name = $request->name;
$newUser->email =$request->email;
$newUser->password = bcrypt($request->password);
$newUser->save();
$http = new Client;
$response = $http->post(url('oauth/token'), [
'form_params' => [
'grant_type' => 'password',
'client_id' => '2',
'client_secret' => '9J0sU4Ctz5p3AUz7ROiv7jELnGrU5waepprqICyH',
'username' => $request->email,
'password' => $request->password,
'scope' => '',
],
]);
return response(['data' => json_decode((string)$response->getBody(), true) ]) ;
}
public function login(Request $request){
$request->validate([
'email'=> 'required',
'password'=> 'required'
]);
$user = User::where('email', $request->email)->first();
if(!$user){
return response(['status' => 'error' , 'message'=> 'user not found']);
}
if(Hash::check($request->password, $$user->password)){
$http = new Client;
$response = $http->post(url('oauth/token'), [
'form_params' => [
'grant_type' => 'password',
'client_id' => '2',
'client_secret' => '9J0sU4Ctz5p3AUz7ROiv7jELnGrU5waepprqICyH',
'username' => $request->email,
'password' => $request->password,
'scope' => '',
],
]);
return response(['data' => json_decode((string)$response->getBody(), true)]);
}
}
}
我有幾乎相同的登錄代碼。 這個正在為我工作:
public function login(Route $route, Request $request)
{
// validation stuff...
$user = User::where('email', $request->email)->first();
if ($user && Hash::check($request->password, $user->password)) {
$http = new Client();
$response = $http->post(url('oauth/token'), array(
'form_params' => array(
'grant_type' => 'password',
'client_id' => 2,
'client_secret' => '...',
'username' => $request['email'],
'password' => $request['password']
)));
return json_decode($response->getBody(), true)['access_token'];
} else {
abort(401);
}
}
並且:您在第二個“ if”中寫了$$ user ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.