[英]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.