php - 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
。就我而言,我不使用任何令牌生成器插件或其他东西。
解决方案
您已经通过/
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
推荐阅读
- python-3.x - 熊猫数据框中的日期格式自动更改
- rest - Grpc 相对于 Rest API 的优势
- php - 根据结果隐藏一些分页
- python - 在 seaborn 中绘制 datetime.time
- quill - Quilljs,想要突出显示在编辑器中输入的单词
- docker - Kubernetes:无法卷曲 minikube pod
- boolean-logic - 如何简化布尔方程
- alfresco - Alfresco 在上传时仅接受 .txt 文件,并为其他文件提供 500 内部服务器错误
- postgresql - 当postgis中的条件不正确时创建新行
- python - tensorflow/keras lstm 输入形状