我正在尝试使用Laravel Passport创建身份验证,我已经按照官方文档中所述的正确方式配置了所有内容。 GET Route方法可以完美地工作(请参见下面的代码),但是当我尝试POST Route方法时,总是会收到此错误:
此路由不支持POST方法。支持的方法:GET,HEAD。
P.S:我正在使用Postman进行测试。
我尝试添加CSRF令牌,但是什么也没有发生,并且遇到相同的错误。
控制器
""everything is fine"
路线
class AuthController extends Controller
{
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
]);
if ($validator->fails()) {
return response(['errors' => $validator->errors()->all()], 422);
}
$request['password'] = Hash::make($request['password']);
$user = User::create($request->toArray());
$token = $user->createToken('Laravel Password Grant Client')->accessToken;
$response = ['token' => $token];
return response($response, 200);
}
public function login(Request $request)
{
$user = User::where('email', $request->email)->first();
if ($user) {
if (Hash::check($request->password, $user->password)) {
$token = $user->createToken('Laravel Password Grant Client')->accessToken;
$response = ['token' => $token];
return response($response, 200);
} else {
$response = "Password missmatch";
return response($response, 422);
}
} else {
$response = 'User does not exist';
return response($response, 422);
}
}
public function logout(Request $request)
{
$token = $request->user()->token();
$token->revoke();
$response = 'You have been succesfully logged out!';
return response($response, 200);
}
}
我希望获得用户注册,并且返回auth令牌,但它向我显示 “此路由不支持POST方法。受支持的方法:GET,HEAD。”
答案 0 :(得分:0)
此行应位于api.php
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});