php - Laravel - 身份验证,未记录路由
问题描述
登录成功后路由调用Controller的方法时出现问题。
在新方法中,用户似乎没有登录。我不明白为什么。
步骤是: 登录
Route::post('login', 'UserController@login')->name('login');
然后检查用户是否登录:
Route::get('check-login', 'UserController@checklogged');
控制器是这个:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Faker\Generator as Faker;
class UserController extends Controller
{
// regole per FormValidator
protected $rulesLogin = [
'email' => 'bail|required|email',
'password' => 'required',
];
// Effettuo il login
/**
* Method: POST
* @Parameters: email, password
* return: Authenticated User.
*/
public function login(Request $request)
{
//dd($request->all());
$validator = Validator::make($request->all(),$this->rulesLogin);
// login fallito
if ($validator->failed()) {
return response([
'status' => 'ko',
'message' => $validator->errors()->first(),
], 422);
}
// login errato
if (!Auth::attempt([
'email' => $request->email,
'password' => $request->password,
'status' => ['active'],
])) {
return response(
[
'status' => 'ko',
'message' => 'Invalid email or password',
], 422);
}
return (Auth::user());
}
public function checklogged()
{
return dd(Auth::id());
}
checklogged() 总是返回 false。我希望它返回一个用户记录的 ID
解决方案
我认为问题是你没有在路由中使用网络中间件。如果你遵循 HMVC 模式,请确保使用这样的网络中间件。
Route::group([
'middleware' => ['web'],
], function () {
});
或者请检查您的 RouteServiceProvider.php 文件天气它在 mapWebRoutes() 函数中有网络中间件
protected function mapWebRoutes()
{
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
}
推荐阅读
- javascript - setTimeout 同时显示元素没有按预期破坏
- c# - 在部署到服务器时,无法在 C# Ajax 应用程序中下载文件。在本地运行很好,没有问题
- excel - 如果 F 列包含特定文本,则从 C 列中提取值
- javascript - 如何从 Flask Web 服务器设置 cookie
- vue.js - Vue CLI 3 / Webpack 生产版本不适用于旧浏览器:如何添加浏览器支持?
- reactjs - 使用 Electron、React 检查渲染器进程中是否存在文件夹
- swift - 尝试启动 UIViewController 和 MapKit
- python - 如何对包含字符串类型和 np.nan 的 numpy 数组进行排序
- python - 变量的 tkinter 问题不会向上、向下或重置
- scala - 如何修复“'java.lang.NoClassDefFoundError: scala/Product$class' 错误,而 flatMapping DataStream 到 Apache Flink 中的案例类”