【发布时间】:2020-03-12 10:06:45
【问题描述】:
我在api.php 有一条路线,看起来像这样
Route::get('auth/logout/{token}', 'UserController@logout');
然后,我使用 Postman 来检查这个 API 端点,如下所示:
localhost:8000/api/v1/auth/logout?token=$2y$10$InjSk8VExH76wSyA3OE9a.jhR/3GhAkJdBE3EyQ3O.Z0kCe/r7wpy
但我只是在邮递员中得到空白回复。它应该显示消息响应并删除数据库中的数据。但事实并非如此。这是我在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) 时,邮递员给了我"asdfasdf"。
localhost:8000/api/v1/auth/logout/asdfasdf
那么,如何使用"?"在URL中发送token参数
编辑 2...
我从数据库中的 bcrypted user_id 生成令牌。就我而言,我不使用任何令牌生成器插件或其他东西。
【问题讨论】:
-
这个函数可能会在 3 个地方结束。他们中只有 2 个返回任何东西。
-
@miken32 你的意思是我必须添加另一个
else{}?