Php 通过在中间件组传递身份验证laravel API,以便在Postman进行测试

Php 通过在中间件组传递身份验证laravel API,以便在Postman进行测试,php,laravel,postman,Php,Laravel,Postman,我想在中间件组上定义的laravel上测试api Route::group(['middleware' => 'auth:api'], function () { Route::post('/city/rating', 'API\HomeController@post_city_rating'); 如何做到这一点?我使用了一些棘手的方法,从登录的浏览器发送cookies,但它不起作用。在postman API测试->管理cookie时 XSRF-TOKEN=EYJPDII6IK1

我想在中间件组上定义的laravel上测试api

Route::group(['middleware' => 'auth:api'], function () {
    Route::post('/city/rating', 'API\HomeController@post_city_rating');
如何做到这一点?我使用了一些棘手的方法,从登录的浏览器发送cookies,但它不起作用。在postman API测试->管理cookie时

XSRF-TOKEN=EYJPDII6IK1PTVVZHNAEP4ZGQRVNDOS25GSEVNPT0ILCJ2YWX1ZSIKK2UFRWAWVCMJCL0RoaJUNFKZ2LWWWWWWWWWWWWWWWW0PUQML6VXRSUKDWETDKUTJNZ1LTWGWGDW5RUW2VM2VmZZYYY2NZY3ZY3ZY3ZY3ZY3ZFYYNZY3ZYNZY3ZYNZYM5TYZYZYZYZYZYZYZYZY3ZYZYZYZYZYZYF3ZYZYFY;路径=/;domain=.**.com;Expires=2019年7月11日星期四格林威治标准时间10:20:38

laravel_session=EYJPDii6imvsztnhov4y1zfk2nexc9ln0jyk2dnpt0ilczyzsi6im83chvlzfkwczczjbb2vcelhpbmy0c2tuvdpwmx5wu0xvdbkwjhwrk5yuefxxc9yzg10elbksuljee9wk1jsc9wk9wk9wkyi1hyyyyyyyyzzzgjrjwjwjwjjjjjjjjdczmzmzhznznzhqq5djjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj; 路径=/;domain=safanci.com;HttpOnly;到期日=2019年7月11日星期四 格林尼治标准时间10:25:57

我正在使用postman api测试并尝试使用cookies manager,但仍然不起作用

尝试在标题键和值处添加,但也不起作用

KEY = XSRF-TOKEN
Value = eyJpdiI6Ik1pTVwvVzhNaEp4ZGQrVndoS25GSEVnPT0iLCJ2YWx1ZSI6Ikk2UFRwaVwvcmJcL0RoajNCUnFkZ2ltWWNWcUdyV0puQml6VXRsUkdweTdkUTJnZ1lTWGdWdnlWaEM5RUw2VmxpZyIsIm1hYyI6IjY2NjY5MzEzMzY3MzFhODYyNmQ5MTlkYjI0MDQzOWVlODcxYTgyODcwMmY1NGVkNjAyYzE3YTMzNTVjNDFhMTYifQ%3D%3D
api.php

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});
功能上没有什么特别的
post\u city\u rating

public function post_city_rating(Request $request){
        $location_review = LocationReview::where('user_id','=',Auth::user()->id)->where('location_id','=',$request->location)->first();

        if(empty($location_review)){
            $location_review = new LocationReview();
            $location_review->id = $this->newIDLocationReview();
        }
        $location_review->user_id = Auth::user()->id;
        $location_review->location_id = $request->location;
        $location_review->rating = $request->rating;
        $location_review->save();

        return response()->json([
            'status' => "success",
        ]);
    }
邮递员返回错误

“未定义路由[登录]。”

我不知道为什么拉威尔会退回我送来的不同饼干。 似乎拉威尔想让我们重定向到登录表单,但因为它发生在邮递员身上。(如果我错了,请纠正我)


另外,可能是因为我从网络路由而不是api路由得到了cookie。这是罪魁祸首吗?如何做到这一点?谢谢。

用API中的会话处理身份验证不是正确的方法。 要声明api路由,必须使用routes文件夹中适当的
api.php
文件。 正如官方的Laravel handle API中所记录的,使用您必须插入到头请求中的令牌进行身份验证

例如:

$response = $client->request('POST', '/api/user', [
    'headers' => [
        'Authorization' => 'Bearer '.$token, //  Here you've to insert your token
        'Accept' => 'application/json',
    ],
]);
要使用Postman测试API,您必须设置
授权
令牌,如下图所示:


用API中的会话处理身份验证不是正确的方法。 要声明api路由,必须使用routes文件夹中适当的
api.php
文件。 正如官方的Laravel handle API中所记录的,使用您必须插入到头请求中的令牌进行身份验证

例如:

$response = $client->request('POST', '/api/user', [
    'headers' => [
        'Authorization' => 'Bearer '.$token, //  Here you've to insert your token
        'Accept' => 'application/json',
    ],
]);
要使用Postman测试API,您必须设置
授权
令牌,如下图所示: