会话未启动Laravel 5.3 Auth

时间:2016-10-19 21:06:33

标签: php session authentication laravel-5.3

我正在尝试根据Laravel 5.3中的API对用户进行身份验证。它不起作用。一旦用户在登录后重定向,Auth就不会保留。

路由配置如下:

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);
}

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

所以在'login'路线:

Illuminate \ Auth \ SessionGuard中的

dd($session);返回#started : true

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

}

但当路由位于#started中间件组(我的情况为'auth')时,'/'为false。

当我将#started路由放在'/'中间件组之外但在控制器中调用'auth'时,我检查了一些Auth::check()也是假的。

这个问题似乎存在于5.2(Auth not persisting in Laravel 5.2 ),但解决方案不适合我。

请帮助我了解登录后无法访问'/'路由的原因。 谢谢!

1 个答案:

答案 0 :(得分:1)

更改kernel.php'api'

'api' => [
            'throttle:60,1',
            'bindings',
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Session\Middleware\StartSession::class,
        ],

<?php
echo "Invoked!!!";

$con = mysqli_connect('localhost', 'root', '');
if (!$con)
{
    die('could not connect:'.mysql_error());    
}
mysqli_select_db('job1');


Error: $sql = "INSERT INTO `cc_job2`(cc_Answer_filename,cc_time,cc_workerID)  VALUES
       ('$_post["Answer_filename"]','$_post["track_data"]','$_post["workerID"]')";

$result = mysqli_query($sql)
if ($result){
    echo ("<br> Input data is succeed") 
} else{
    echo("<br> Input data is failed");
}
mysqli_close($con);
?>