簡體   English   中英

子域中的Laravel 5弱化不起作用

[英]Laravel 5 athentication in subdomain is not working

我在laravel 5項目中使用子域,但是當我嘗試登錄用戶時,它將不再進行身份驗證。 這是我的config\\session.php

return [
'driver' => env('SESSION_DRIVER', 'database'),
'lifetime' => 120,
'expire_on_close' => false,
'encrypt' => true,
'files' => storage_path('framework/sessions'),
'connection' => null,
'table' => 'sessions',
'lottery' => [2, 100],
'cookie' => 'laravel_session',
'path' => '/',
'domain' => '.stagedevelopment.dev',
'secure' => false,
'http_only' => true,
];

我的routes.php

Route::group([ 'prefix' => 'app', 'middleware' => 'auth' ], function() {
       ... some codes ....
    Route::group(['domain' => '{account_alias}.'.stagedevelopment.dev'], function () {
                    Route::get('dashboard', 'DashController@index');

這是對“ DashController@index上” DashController.php

public function index(Request $request, $account_alias = null){
   if ( Auth::user()){
    // CODES TO CALL THE VIEW
   }
}

但是登錄時,它不會重定向。 這使我感到困擾。 我也通過var_dump(Auth::user())檢查,但是它返回null值,但是我嘗試了var_dump($request->session()->get('uid'))它返回了試圖user_id用戶的user_id認證。

我的問題是,我錯過了什么嗎? 我只希望認證用戶在Auth::user() 請幫我解決一下這個。 任何幫助將不勝感激。 先感謝您。

順便說一下,這是我登錄用戶的代碼

public function postSignIn( Request $request) {
        $rules = array(
            'email' => 'required|email',
            'password' => 'required',
        );
        $validator = Validator::make( Input::all(), $rules );
        if ( $validator->passes() ){
            $remember = ( !is_null( $request->get('remember')) ? true : false );
            if ( Auth::attempt( array( 'email' => $request->input('email'), 'password' => $request->input('password') ) ) ){
                if ( Auth::check() ){
                        $account = \App\Account::where( 'alias', 'LIKE', Auth::user()->account->alias )->get();
                        if($account->count() > 0){
                            return Redirect::to('http://'. Auth::user()->account->alias.'.stagedevelopment.dev/app/dashboard');
                        }
                }
            }
        }
    }

現在有效。 這只是我代碼中的路由問題。 route.php中的子域必須是第一個子域,並且在其內部將是前綴等,如下所示:

Route::group(['domain' => '{account_alias}.'.env('APP_URL_NAME')], function () {
    // L3
    Route::group([ 'prefix' => 'app', 'middleware' => 'auth', 'middleware' => 'auth.manager' ], function() {
        Route::get('dashboard', 'DashController@index');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM