当前位置: 首页 > 知识库问答 >
问题:

会话未启动Laravel 5.3身份验证

司徒经纶
2023-03-14

我正在尝试根据Laravel5.3中的API对用户进行身份验证。它不起作用。一旦用户在登录后重定向,身份验证就不会持久。

路由配置如下:

Route::group(['middleware' => 'web'], function () {
    Route::group(['middleware' => 'auth'], function () {
        Route::get('/', 'Users\DashboardController@index');
    });
    // Authentication routes...
    Route::get('login', 'Auth\LoginController@getLogin');
    Route::post('login', 'Auth\LoginController@postLogin');
    Route::get('logout', 'Auth\LoginController@getLogout');

});

在LoginController.php我正在使用

protected $redirectTo = '/';
public function getLogin()
{
    return view('auth.login');
}

public function postLogin(Request $request)
{
    $this->login($request);
}

成功保存在文件中的登录后,路由'/'的会话不会启动。

所以在“登录”路径上:

dd($session) 返回#启动:true

Store {#153 ▼
 #id: "fo9Q8WuBio5BBus70WmzFPZmkXkjsYQlYEHsVHI4"
 #name: "laravel_session"
 #attributes: array:4 [▼]
 #bags: []
 #metaBag: MetadataBag {#144 ▼}
 #bagData: array:1 [▼]
 #handler: FileSessionHandler {#154 ▼}
 #started: true

}

但是当路由在中间件组(在我的情况下是'auth')中时,#start是false。

当我将'/'路由置于'auth'中间件组之外,但在控制器中调用auth::check()时,我检查了一些,并且#start也为false。

这个问题似乎已经存在于5.2中(Auth没有坚持在laravel5.2中),但是那里的解决方案对我不起作用。

请帮助我了解为什么登录后无法访问'/'路由。非常感谢。


共有1个答案

江育
2023-03-14

更改kernel.php“api”

api' => [
            'throttle:60,1',
            'bindings',
        ],

'api' => [
            'throttle:60,1',
            'bindings',
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Session\Middleware\StartSession::class,
        ],
 类似资料:
  • TL;DR:成功登录并重定向到后,我被控制器的中间件踢回(

  • 我试图通过编写一个简单的REST应用程序来学习Spring Boot,该应用程序将登录用户()并显示当前用户的信息()。我正在使用Redis进行会话。 按预期工作:它返回主体并在浏览器和Redis中设置会话cookie。 然而,随后的请求返回。我错过了什么? : : < code > index controller . Java : :

  • 在身份验证等情况下,与会话相比,使用JWTs有什么优势? 它是作为独立方法使用还是在会话中使用?

  • 我正在使用Vert。后端为x,前端为AngularJS。 Vert. x服务器使用POST和GET方法接收HTTP操作。不知何故,我为每个请求获取不同的会话ID。 以下是来自我的LoginFormHandler类句柄例程的代码片段。 我正在将用户对象放入当前会话中。然后我移动到新页面并向Vert. x服务器发送POST请求。在那个POST处理程序中,我正在尝试获取会话对象: 我没有得到用户。此外,

  • 我遵循了认证教程,但遇到了一些问题。 它不能将变量传递给导入的函数。

  • keytool-list-v-keystore my_keystore.jks