jeudi 12 septembre 2019

Why is Sentinel on Laravel redirecting to my login page?

I have a website written in Laravel 5.1 which has been running for almost two years without problems. The site uses cartalyst-sentinel to handle the authentication. This working site runs on a subdomain, say sub-a.domain.com.

Now I made a copy of my site for testing purposes to sub-b.domain.com which ran fine for a day but stopped working today. By stopped working I mean the following: when I go to my domain the authentication page loads fine, but logging in seems impossible, I'm simple being redirected to the authentication page.

Here are my routes, authenticationController and AuthMiddleware:

Routes:

<?php
// NEW ROUTES
Route::get('/api/v2/pull/force', 'Endpoint\PullController@forceDownload');
Route::get('/api/v2/pull/articles', 'Endpoint\PullController@getArticles');
Route::get('/api/v2/pull/categories', 'Endpoint\PullController@getCategories');
Route::get('/api/v2/pull/districts', 'Endpoint\PullController@getDistricts');
Route::get('/api/v2/pull/printers', 'Endpoint\PullController@getPrinters');
Route::get('/api/v2/pull/tables', 'Endpoint\PullController@getTables');
Route::get('/api/v2/pull/employees', 'Endpoint\PullController@getEmployees');
Route::get('/api/v2/pull/discounts', 'Endpoint\PullController@getDiscounts');
Route::get('/api/v2/pull/settings', 'Endpoint\PullController@getSettings');
Route::get('/api/v2/pull/layouts', 'Endpoint\PullController@getReceiptLayouts');
Route::get('/api/v2/pull/layouts/{logo}', 'Endpoint\PullController@getReceiptLayoutLogo');

Route::post('/api/v2/push/shifts', 'Endpoint\PushController@setShifts');
Route::post('/api/v2/push/discounts', 'Endpoint\PushController@setDiscounts');
Route::post('/api/v2/push/usages', 'Endpoint\PushController@setDeviceUsages');
Route::post('/api/v2/push/orders', 'Endpoint\PushController@setOrders');
Route::post('/api/v2/push/batches', 'Endpoint\PushController@setBatches');
Route::post('/api/v2/push/lines', 'Endpoint\PushController@setLines');
Route::post('/api/v2/push/additions', 'Endpoint\PushController@setAdditions');
Route::post('/api/v2/push/meta', 'Endpoint\PushController@setMeta');

// CURRENT ROUTES
Route::get('/', 'DashboardController@index');
Route::get('dashboard/test', 'DashboardController@test');
Route::post('dashboard/shift', 'DashboardController@shift');

Route::resource('customers', 'CustomerController');
Route::get('customer/update/forced', 'CustomerController@force_update');

Route::resource('users', 'UserController');
Route::get('users/create/{id}', 'UserController@create');

Route::get('resources/employees', 'ResourceController@employees');
Route::get('resources/turnover_groups', 'ResourceController@turnover_groups');
Route::get('resources/turnover_groups_chart', 'ResourceController@turnover_groups_chart');
Route::get('resources/categories', 'ResourceController@categories');
Route::get('resources/places', 'ResourceController@places');
Route::get('resources/articles', 'ResourceController@articles');
Route::get('resources/districts', 'ResourceController@districts');
Route::get('resources/vat_rules', 'ResourceController@vat_rules');

Route::resource('tables', 'TableController');
Route::get('tables/action/published', 'TableController@published');
Route::get('tables/action/unpublished', 'TableController@unpublished');
Route::post('tables/action/series', 'TableController@series');
# table filter routes
Route::post('tables/action/filter', 'TableController@filter');
Route::get('tables/action/reset', 'TableController@reset');

Route::resource('articles', 'ArticleController');
Route::get('articles/action/import', 'ArticleController@import');
Route::get('articles/action/published', 'ArticleController@published');
Route::get('articles/action/unpublished', 'ArticleController@unpublished');
Route::get('articles/action/child', 'ArticleController@child');
Route::get('articles/question/ajax/articles', 'ArticleController@getArticlesForQuestion');
# article filter routes
Route::post('articles/action/filter', 'ArticleController@filter');
Route::get('articles/action/reset', 'ArticleController@reset');

Route::resource('followup_questions', 'FollowupQuestionController');
Route::delete('followup_questions/{id}/answer', 'FollowupQuestionController@destroyAnswer');

Route::resource('categories', 'CategoryController');
Route::get('categories/action/published', 'CategoryController@published');
Route::get('categories/action/unpublished', 'CategoryController@unpublished');
Route::post('categories/action/reorder', 'CategoryController@reorder');
Route::post('categories/action/reorder/fix', 'CategoryController@fix_reorder');
# table filter routes
Route::post('categories/action/filter', 'CategoryController@filter');
Route::get('categories/action/reset', 'CategoryController@reset');

Route::resource('employees', 'EmployeeController');
Route::get('employees/action/published', 'EmployeeController@published');
Route::get('employees/action/unpublished', 'EmployeeController@unpublished');
# employees filter routes
Route::post('employees/action/filter', 'EmployeeController@filter');
Route::get('employees/action/reset', 'EmployeeController@reset');

Route::resource('receipt_layouts', 'ReceiptLayoutController');
Route::get('receipt_layouts/action/published', 'ReceiptLayoutController@published');
Route::get('receipt_layouts/action/unpublished', 'ReceiptLayoutController@unpublished');

Route::resource('turnover_groups', 'TurnoverGroupController');
Route::get('turnover_groups/action/published', 'TurnoverGroupController@published');
Route::get('turnover_groups/action/unpublished', 'TurnoverGroupController@unpublished');
# turnover groups filter routes
Route::post('turnover_groups/action/filter', 'TurnoverGroupController@filter');
Route::get('turnover_groups/action/reset', 'TurnoverGroupController@reset');

Route::resource('districts', 'DistrictController');
Route::get('districts/action/published', 'DistrictController@published');
Route::get('districts/action/unpublished', 'DistrictController@unpublished');
# districts filter routes
Route::post('districts/action/filter', 'DistrictController@filter');
Route::get('districts/action/reset', 'DistrictController@reset');

Route::resource('settings', 'SettingController');
Route::resource('usage', 'UsageController');
# usage filter routes
Route::post('usage/action/filter', 'UsageController@filter');
Route::get('usage/action/reset', 'UsageController@reset');

Route::resource('printers', 'PrinterController');
Route::get('printers/create/{id}', 'PrinterController@create');

Route::resource('discounts', 'DiscountController');
Route::get('discounts/action/published', 'DiscountController@published');
Route::get('discounts/action/unpublished', 'DiscountController@unpublished');

Route::resource('audit', 'AuditController');

Route::post('login', 'AuthController@postLogin');
Route::get('login', 'AuthController@getLogin');
Route::get('logout', 'AuthController@getLogout');

Route::get('admin', 'AdminController@index');
Route::get('admin/{id}', 'AdminController@show')->where('id', '[0-9]+');
Route::get('admin/invoice', 'AdminController@invoice');
Route::get('admin/migrate/{customer_id}', 'AdminController@migrate');
Route::get('admin/order_fix', 'AdminController@order_fix');

Route::resource('export', 'ExportController');
Route::get('export/download/{filename}', 'ExportController@download')->where('filename', '[A-Za-z0-9\-\_\.]+');

# AJAX routes
Route::get('ajax/districts', 'AjaxController@getDistricts');
Route::get('ajax/employees', 'AjaxController@getEmployees');
Route::get('ajax/tables', 'AjaxController@getTables');
Route::get('ajax/articles', 'AjaxController@getArticles');
Route::get('ajax/categories', 'AjaxController@getCategories');
Route::get('ajax/chart', 'AjaxController@getChart');
Route::get('ajax/turnovergroups', 'AjaxController@getTurnoverGroups');
Route::get('ajax/totals', 'AjaxController@getTotals');
Route::get('ajax/totalTurnoverOnly', 'AjaxController@getTotalTurnoverOnly');
Route::get('ajax/getSessionVariables', 'AjaxController@getSessionVariables');
Route::get('ajax/split-overview', 'AjaxController@getSplitOverview');
Route::get('ajax/corrections', 'AjaxController@getCorrections');
Route::get('ajax/getOrders', 'AjaxController@getOrdersFromTable');
Route::get('ajax/getOrderSpecification', 'AjaxController@getOrderSpecification');

# INVOICES
//Route::resource('invoices', 'InvoiceController');

Controller:


use Cartalyst\Sentinel\Laravel\Facades\Sentinel;
use Illuminate\Http\Request;
use Lang;
use Laracasts\Flash\Flash;
use Log;
use Illuminate\Support\Facades\Session;

/**
 * Class AuthController
 * @package Pong\Http\Controllers
 */
class AuthController extends Controller
{
    /**
     * AuthController constructor.
     */
    function __construct()
    {
        $this->middleware('guest', ['except' => 'getLogout']);
    }

    /**
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
     */
    public function getLogin()
    {
        return view('auth.login');
    }

    /**
     * @param Request $request
     * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
     */
    public function postLogin(Request $request)
    {
        $credentials = $request->except(['_token']);

        if (empty($credentials['email']) || empty($credentials['password'])) {
            Flash::error(Lang::get('auth.messages.empty_fields'));
            return redirect('login');
        }

        if (Sentinel::authenticate($credentials, true)) {
            if (Sentinel::getUser()) {
                Log::debug(Sentinel::getUser());
                return redirect('/');
            } else {
                Log::debug("User not found");
                Flash::error("Sentinel is een bitch...");
            }
        } else {
            Flash::error(Lang::get('auth.messages.invalid_login'));
        }

        return redirect('login');
    }
}


Middleware:

<?php namespace Pong\Http\Middleware;

use Cartalyst\Sentinel\Laravel\Facades\Sentinel;
use Closure;
use Illuminate\Contracts\Auth\Guard;
use Log;
use Session;

class Authenticate {

    /**
     * The Guard implementation.
     *
     * @var Guard
     */
    protected $auth;

    /**
     * Create a new filter instance.
     *
     * @param  Guard $auth
     */
    public function __construct(Guard $auth)
    {
        $this->auth = $auth;
    }

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Sentinel::getUser()) {
            Log::debug(Sentinel::getUser());
        } else {
            Log::debug("And he's gone...");
        }

        if (Sentinel::guest())
        {
            if ($request->ajax())
            {
                return response('Unauthorized.', 401);
            }
            else
            {
                return redirect()->guest('login');
            }
        }

        return $next($request);
    }
}

My logs show the logged in user first, as coded in the controller, then they show 'And he's gone...' as coded in the middleware. In other words, I'm authenticated but not saved. The site on sub-a is still running fine and uses the same auth controller en middleware.

Laravel version: 5.1 Sentinel version: 2.0

I'm using the file driver for my sessions and I have checked the permissions of the /storage/framework/sessions folder, that shouldn't be the problem. I've tried using other session drivers but that didn't change anything. Normal session variables work fine.

Does anyone have an idea?



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/34L1DbF
via IFTTT

Aucun commentaire:

Enregistrer un commentaire