php - 未设置经过身份验证的用户的会话
问题描述
(我知道以下示例不安全)
我有一个基本的身份验证系统,用户必须在其中输入他的凭据。当输入的凭据正确时,我在我的 laravel 应用程序中设置了一个会话,这表明他可以对 api 执行经过身份验证的请求。我这样做是通过以下方式:
public function authenticate(Request $request){
$data = array(
'name' => $request->input('UserName'),
'password' =>$request->input('Password'),
'email' => 'test@test.ch'
);
If(Auth::attempt($data)){
$request->session()->put('isAuthenticated',true);
$request->session()->save();
return "success";
}
return "wrong";
}
我检查是否允许用户发出请求的中间件:
public function handle($request, Closure $next){
if(!empty($request->session()->get('isAuthenticated')) && $request->session()->get('isAuthenticated') === true){
return $next($request);
}
return redirect('/');
}
我的路线:
Route::post('/login', 'UserController@authenticate');
Route::group(['middleware' =>['web','check_auth']], function (){
Route::get('/logs','LogController@getAllLogEntries');
Route::get('/logs/{id}','LogController@getLogEntryById');
});
我的问题:
每当用户使用正确的凭据登录时,服务器都会返回“成功”作为响应,但总是将我引导回基本根目录 ('/')。这让我假设会话没有设置。我该如何解决这个错误?
解决方案
推荐阅读
- python-3.x - 如何将字符串分成2个列表列表
- reactjs - ReactJS 组件状态下拉列表未更新
- python - Django Serilizer:在嵌入式序列化程序中获取有序字典
- mysql - 从sql中的另一个表更新表值
- reactjs - 如何从子抽屉导航转到父堆栈导航屏幕
- c++ - 使用向量 C++ 实现队列
- python - Django 添加在每个请求上显示表单的中间件
- angular - 如何覆盖 Angular 库 ng-fullcalendar 的订单行为?
- java - 从 SDK 21 迁移到 SDK 28
- r - 使用 lapply 到示例数据框,包括新列和重新排序列