laravel 4.2 auth не работает на поддомене сервера?

#php #laravel #laravel-4

#php #laravel #laravel-4

Вопрос:

Я новичок в Laravel. Я создал приложение на своем локальном хостинге, и оно работает должным образом, но когда я загрузил его на свой поддомен, оно не перенаправляется на панель мониторинга после аутентификации. Я прочитал решение во многих руководствах, даже в StackOverflow, но не нашел никакого решения. Я проверил свой файл журнала Laravel, но там нет журнала. Пожалуйста, проверьте приведенный ниже код моего маршрута.

 Route::get('/', function(){ 
if(Auth::check())
    return Redirect::route('dashboard');
else 
    return View::make('login');
});
Route::get('/404',array('before'=>'auth','as'=>'404','uses'=>'HomeController@showFourZeroFour'));
//
Route::get('dashboard',array('before'=>'auth','as'=>'dashboard','uses'=>'HomeController@showWelcome'));
  

UserController.php для авторизации пользователя

  public function login()
 {
    if (Confide::user()) {
        return Redirect::to('/');
    } else {
        return View::make(Config::get('confide::login_form'));
    }
}

/**
 * Attempt to do login
 *
 * @return  IlluminateHttpResponse
 */
public function doLogin()
{
    $repo = App::make('UserRepository');
    $input = Input::all();
    $dt = $input['email'];
    if ($dt == "") {
        $err_msg = Lang::get('confide::confide.alerts.wrong_credentials');
        return Redirect::action('UsersController@login')
            ->withInput(Input::except('password'))
            ->with('error', $err_msg);
    }
    if ($repo->login($input)) {

        $deleted = User::where('email','=',$dt)->first()->deleted;
        $status = User::where('email','=',$dt)->first()->status;

        if ($deleted == '1' || $status == '0') {
            Auth::logout();
            return View::make('login')->with(array('message' => 'Account deactivated/deleted,Contact Admin!','level'=>'error'));
        }

        return Redirect::intended('/');
    } else {
        if ($repo->existsButNotConfirmed($input)) {
            $err_msg = Lang::get('confide::confide.alerts.not_confirmed');
        } else {
            $err_msg = Lang::get('confide::confide.alerts.wrong_credentials');
        }

        return Redirect::action('UsersController@login')
            ->withInput(Input::except('password'))
            ->with('error', $err_msg);
    }
}
  

и мой файл .htaccess

 # Force SSL
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>

# 1 Month for most static assets
<filesMatch ".(css|jpg|jpeg|png|gif|js|ico)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteRule ^(composer|contributing|artisan) - [F,L,NC]

    RewriteEngine On
    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
  

Я уже заменил ключ домена в файле сеанса на .domain.com

Пожалуйста, помогите мне, я работаю над этим последние два дня. Спасибо

Комментарии:

1. Почему вы новичок в Laravel, но создаете свое новое приложение в устаревшей версии?

Ответ №1:

Вы не указали маршруты для аутентификации в своем файле routes. Маршруты аутентификации должны выглядеть следующим образом

 /**
 * Authentication
 */
Route::controllers([
    'auth' => 'AuthAuthController',
    'password' => 'AuthPasswordController',
]);