Почему redirect () -> back ();функция продолжает идти на страницу входа? - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь настроить многоязычное веб-приложение.Используя промежуточное ПО переключателя локали, я хочу установить локаль с помощью запроса Http, например "locale / ru".Затем вернитесь к текущей странице в качестве установленной переменной сеанса.(У меня также есть стандартная авторизация laravel, настроенная для панели управления бэкенда.) Но когда запрос сделан (через URL или что-то в этом роде), laravel перенаправляет меня на страницу авторизации, как будто я пытаюсь перейти на страницу, требующую аутентификации.,Если я попытаюсь установить в этом сеансе настройку Http-запроса в качестве уже вошедшего в систему пользователя, он перенаправит меня на страницу панели инструментов «Вы вошли в систему» ​​по умолчанию.

Если я заменим redirect-> back () наredirect-> маршрут ( 'посадка');тогда это работает, но я не хочу устанавливать постоянную страницу для этой функции.Я пытался удалить Auth :: routs ();с веб-маршрутов, я перенаправлен на текущую переменную сеанса локали страницы, установленную правильно, но я потерял способности аутентификации laravel.

Код промежуточного программного обеспечения My LanguageSwitcher:

<?php

namespace App\Http\Middleware;

use Closure;

class SwitchLanguage
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {   
        //Language switcher
        if(\Session::has('locale'))
        {
            \App::setLocale(\Session::get('locale'));
        }
        //Language switcher ending!!

        return $next($request);
    }
}

Мои веб-маршруты:

<?php


// Route::get('/', function () {
//     return view('front.anasayfa');
// });

//Language switcher
    Route::get('locale/{locale}', function($locale){
        Session::put('locale',$locale);
        return redirect()->back();
    });

    Route::get('/','AnasayfaController@index')->name('landing');

    Route::get('/haberler','NewsController@index');

    Auth::routes();

    Route::get('/dashboard', 'DashboardController@index');

Я хочу выбрать язык с помощью URL-адреса, например "locale / etc ....", а затем перенаправить на текущую страницу, не мешая аутентификации laravel.

...