簡體   English   中英

URL GET Route Laravel 中的參數

[英]URL Parameter in GET Route Laravel

我在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 y

但我只是在 postman 中得到一個空白響應。 它應該顯示消息響應並刪除數據庫中的數據。 但事實並非如此。 這是我在UserController.php中的logout()

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)時, Postman 給了我"asdfasdf"

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

那么,如何使用"?"在 URL 中發送token參數?

編輯 2...

我從數據庫中的 bcrypted user_id生成令牌。 就我而言,我不使用任何令牌生成器插件或其他東西。

您已經通過/在路由中傳遞了令牌,這就是您返回空白響應的原因。

正如您在問題中最后所說的那樣傳遞令牌? . 所以你需要在header中傳遞令牌。 在 postman header 部分中,您必須傳遞鍵和值。 你的鑰匙是token 價值是您的代幣,例如2y$10$InjSk8VExH76wSyA3OE9a.jhR/3GhAkJdBE3EyQ3O.Z0kCe/r7wpy

閱讀此文檔: https://learning.getpostman.com/docs/postman/sending-api-requests/requests/

對於 laravel api_token:

看看 laravel 官方文檔: https://laravel.com/docs/5.8/api-authentication

是的,我終於知道為什么Postman中的響應是空白的原因了。 UserController.php是資源 controller,但我在其中添加了自定義login()方法。 我應該將自定義方法的Route放在resource controller 的route上方。 它應該如下所示:

Route::get('auth/login','UserController@login');

Route::resource('auth', 'UserController');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM