首页 > 解决方案 > GET Route Laravel 中的 URL 参数

问题描述

我有一条api.php看起来像这样的路线

Route::get('auth/logout/{token}', 'UserController@logout');

然后,我使用 Postman 来检查这个 API 端点,如下所示:

localhost:8000/api/v1/auth/logout?token=$2y$10$InjSk8VExH76wSyA3OE9a.jhR/3GhAkJdBE3EyQ3O.Z0kCe/r7wp是的

但我只是在邮递员中得到一个空白的回复。它应该显示消息响应并删除数据库中的数据。但事实并非如此。这是我logout()UserController.php

public function logout($token){
    $current_token = Token::where('token', $token)->first();
    if($current_token){
        if(Token::where('token','=',$current_token)->delete()){
            return response()->json([
                'message' => 'Logout Success'
            ], 201);
        }
    }else{
        return response()->json([
            'message' => 'Unauthorized User'
        ], 401);
    }
}

任何人都可以帮助我的问题?我很欣赏你所有的方法。

编辑...

当我发送这样的虚拟请求并使用dd($token)时,邮递员给了我"asdfasdf"

localhost:8000/api/v1/auth/logout/asdfasdf

那么,如何token使用"?"

编辑 2...

我从数据库中的 bcrypted 生成令牌user_id。就我而言,我不使用任何令牌生成器插件或其他东西。

标签: phplaravelapiroutes

解决方案


您已经通过/in route 传递了令牌,这就是您返回空白响应的原因。

正如您在问题中最后所说的那样传递令牌?所以你需要在header中传递令牌。在邮递员标题部分,您必须传递键和值。你的钥匙是token。价值是您的代币,如2y$10$InjSk8VExH76wSyA3OE9a.jhR/3GhAkJdBE3EyQ3O.Z0kCe/r7wpy.

阅读此文档: https ://learning.getpostman.com/docs/postman/sending-api-requests/requests/

对于 laravel api_ 令牌:

看一下 laravel 官方文档:https ://laravel.com/docs/5.8/api-authentication


推荐阅读