正在Laravel Passport 用于构建 API,我相应地删除了网络路由及其防护
如何测试用户注销?
这是我到目前为止:
Logout Test
/**
* Assert users can logout
*
* @return void
*/
public function test_logout()
{
// $data->token_type = "Bearer"
// $data->access_token = "Long string that is a valid token stripped out for brevety"
$response = $this->json('POST', '/api/logout', [], [
'Authorization' => $data->token_type . ' ' . $data->access_token
]);
$response->assertStatus(200);
}
Run Code Online (Sandbox Code Playgroud)
routes/api.php
Route::post('logout', 'Auth\LoginController@logout')->name('logout');
Run Code Online (Sandbox Code Playgroud)
控制器方法使用AuthenticatesUserstrait,因此保留默认功能
/**
* Log the user out of the application.
*
* @param \Illuminate\Http\Request $request
* …Run Code Online (Sandbox Code Playgroud) 最初,我的laravel应用程序正在使用HTTP协议,然后将协议更改为HTTPS。
不幸的是现在我的应用程序登录现在无法正常工作。它向我显示419错误,对不起,您的会话已过期。我尝试了几种建议的解决方案。
https://laracasts.com/discuss/channels/laravel/post-request-in-laravel-57-error-419-sorry-your-session-has-expired。
Laravel 419错误-VerifyCsrfToken问题
在Laravel 5.7中发布请求---错误-419对不起,您的会话已过期。
但是这些都没有解决我的问题。
我正在使用CRUDBOOSTER插件来管理登录。
Routes.php。
/* ROUTER FOR WEB */
Route::group(['middleware' => ['web'], 'prefix' => config('crudbooster.ADMIN_PATH'), 'namespace' => $namespace], function () {
Route::post('unlock-screen', ['uses' => 'AdminController@postUnlockScreen', 'as' => 'postUnlockScreen']);
Route::get('lock-screen', ['uses' => 'AdminController@getLockscreen', 'as' => 'getLockScreen']);
Route::post('forgot', ['uses' => 'AdminController@postForgot', 'as' => 'postForgot']);
Route::get('forgot', ['uses' => 'AdminController@getForgot', 'as' => 'getForgot']);
Route::post('register', ['uses' => 'AdminController@postRegister', 'as' => 'postRegister']);
Route::get('register', ['uses' => 'AdminController@getRegister', 'as' => 'getRegister']);
Route::get('logout', ['uses' => 'AdminController@getLogout', 'as' …Run Code Online (Sandbox Code Playgroud)