我正在尝试根据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'
路线:
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 ),但解决方案不适合我。
请帮助我了解登录后无法访问'/'
路由的原因。
谢谢!
答案 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);
?>