Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何修复Laravel“;此路由不支持Post方法“;?_Php_Laravel_Authentication_Oauth - Fatal编程技术网

Php 如何修复Laravel“;此路由不支持Post方法“;?

Php 如何修复Laravel“;此路由不支持Post方法“;?,php,laravel,authentication,oauth,Php,Laravel,Authentication,Oauth,我正在尝试使用Laravel Passport创建身份验证,我已经按照官方文档中提到的正确方式配置了所有内容。GET Route方法工作得很好(请参见下面的代码),但当我尝试POST Route方法时,总是会出现以下错误: 此路由不支持POST方法。支持的方法:GET,HEAD 我用邮递员做测试 我试图包括CSRF令牌,但什么都没有发生,我得到了相同的错误 控制器 class AuthController extends Controller { public function regi

我正在尝试使用Laravel Passport创建身份验证,我已经按照官方文档中提到的正确方式配置了所有内容。GET Route方法工作得很好(请参见下面的代码),但当我尝试POST Route方法时,总是会出现以下错误:


此路由不支持POST方法。支持的方法:GET,HEAD

我用邮递员做测试

我试图包括CSRF令牌,但什么都没有发生,我得到了相同的错误

控制器

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);
    }
}
路线

Route::middleware('auth:api')->get('/user',函数(Request$Request){
返回$request->user();
});
路由::post('/login',Api\AuthController@login')->name('login.api');
路由::post('/register',Api\AuthController@register')->name('register.api');
我希望获得用户注册,并返回auth令牌,但它显示
“此路由不支持POST方法。支持的方法:GET,HEAD。”

此行应位于
api.php

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

“此路由不支持POST方法。支持的方法:GET,HEAD”--您在这三个路由中选择了哪一个?第一个路由应该在
api.php
中,对吗?因此,url应该带有前缀
api/user
。我想你的问题中没有包含所有信息。@senty是的,我必须在api.php中创建路由。。。它现在很好用,非常感谢