【发布时间】:2016-11-15 04:58:53
【问题描述】:
在发布之前我已经搜索了很多,我发现的每个“解决方案”都不起作用。
我无法从与当前路由不同的路由获取会话值。
Routes.php
Route::group(['middleware' => 'web', 'prefix' => 'blog', 'namespace' => 'Modules\Blog\Http\Controllers'], function()
{
Route::get('/','PostController@index');
Route::get('/home',['as' => 'home', 'uses' => 'PostController@index']);
Route::get('auth/login', 'Auth\AuthController@showLoginForm');
Route::post('auth/login', 'Auth\AuthController@login');
Route::group(['middleware' => 'blog.auth'], function(){
Route::get('/admin',['as'=>'dashboard','uses'=>'AdminController@index']);
});
});
内核.php
protected $middlewareGroups = [
'web' => [
\ommitedbutcorrect\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class
],
'admin' => [
\Modules\Admin\Http\Middleware\ControllerResolver::class,
],
'admin.auth' => [
\Modules\Admin\Http\Middleware\AdminAuthenticate::class,
],
'blog.auth' => [
\Modules\Blog\Http\Middleware\BlogAuthenticate::class,
],
'api' => [
'throttle:60,1',
],
];
AuthController.php
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
protected $redirectTo = '/blog/admin/';
public function __construct()
{
$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
}
public function login()
{
dd(\Session::get('foo'));
$userdata = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
if (\Auth::attempt($userdata)) {
\Session::save();
return redirect($this->redirectTo);
}
else{
return 'f*ck';
}
}
public function showLoginForm()
{
\Session::put('foo', 'bar');
return view('blog::Admin.login');
}
在 Storage 和 Bootstrap 文件夹、会话驱动程序数据库上使用 Chmod 777。
似乎会话每次都在通过请求创建自己,这可以解释为什么我无法使用 Session:get('foo') 获取值,现在返回 null。
我已经为此浪费了 3 天时间:/.
非常感谢您的帮助,如果你们需要更多详细信息/代码,请直接说出来。
【问题讨论】:
标签: php laravel session authentication routes