OctoberCMS: Foydalanuvchilarning barcha sahifalar uchun tizimga kirishini tekshirish

Foydalanuvchilarni qayta yo'naltirish uchun quyidagi kodni (bir sahifaning kod qismida) foydalanmoqdaman. agar ular tizimga kirmagan bo'lsa, login sahifasi:

function onStart()
{
    $user = $this->account->user();
    if(!$user)
    {
        return Redirect::to('/login');
    }
}

Qanday qilib men buni har bir sahifada qilishdan qochishim va autentifikatsiya qilish kerak bo'lgan barcha sahifalar uchun ushbu tekshiruvni bitta joyda bajarishim mumkin?

2

6 javoblar

sessiya komponentidan foydalana olmaysizmi? login bo'lmagan foydalanuvchilarni qayta yo'naltirish.

3
qo'shib qo'ydi
Ha, Sektsiya komponentini har bir sahifaga yoki yaxshiroq hali barcha sahifalar tomonidan ishlatiladigan tartibni qo'shing va security = "user" va redirect = "login"
qo'shib qo'ydi muallif Joseph, manba

sessiya komponentidan foydalana olmaysizmi? login bo'lmagan foydalanuvchilarni qayta yo'naltirish.

3
qo'shib qo'ydi
Ha, Sektsiya komponentini har bir sahifaga yoki yaxshiroq hali barcha sahifalar tomonidan ishlatiladigan tartibni qo'shing va security = "user" va redirect = "login"
qo'shib qo'ydi muallif Joseph, manba

Siz tartibda bir xil funktsiyalardan foydalanishingiz mumkin. onInit() nizomlari yaxshi variant kabi ko'rinadi.

You can read more about it here

1
qo'shib qo'ydi
Buni faqat ba'zi sahifalarga qanday qo'llash mumkin?
qo'shib qo'ydi muallif Meysam, manba
Ehtimol urlni yoki shunga o'xshash narsalarni tekshirib ko'rish mumkinmi? Boshqa variantlar CMS sahifasini ushbu maqsad uchun tekshirilgan qo'shimcha xususiyatni qo'shib kengaytirishdir.
qo'shib qo'ydi muallif dragontree, manba

Siz tartibda bir xil funktsiyalardan foydalanishingiz mumkin. onInit() nizomlari yaxshi variant kabi ko'rinadi.

You can read more about it here

1
qo'shib qo'ydi
Buni faqat ba'zi sahifalarga qanday qo'llash mumkin?
qo'shib qo'ydi muallif Meysam, manba
Ehtimol urlni yoki shunga o'xshash narsalarni tekshirib ko'rish mumkinmi? Boshqa variantlar CMS sahifasini ushbu maqsad uchun tekshirilgan qo'shimcha xususiyatni qo'shib kengaytirishdir.
qo'shib qo'ydi muallif dragontree, manba

Siz Session Component dan foydalanishingiz mumkin, lekin keyin siz ikkita tartibga kerak:

a) Layout for registered Users >> Add session component to this layout and set security = "user" with the redirect option

b) Layout for public pages ( non-registered ) >> Add another session component >> security = "guest"

Yana bir variant - bu marshrutlar uchun O'rtacha dastur yaratish;

public function handle($request, Closure $next)
{


    App::before(function() {

        if (App::runningInBackend() || App::runningInConsole()) {
            return;
        }

        if ( !Auth::getUser() ) {

              return Redirect::to('/login');
        }


    });

    return $next($request);
}

Agar siz RainLab Plugin-ni ishlatsangiz va oddiygina foydalanuvchi tekshirilsa, oddiy komponentni ishga soladi.

1
qo'shib qo'ydi
qo'shib qo'ydi muallif Meysam, manba

Plugin.php plaginini yuklagan deb atalgan boot funksiyasiga ega. Joriy sahifaning orqa tomonda bo'lmaganligini tekshirishingiz kerak, ammo CMS-ga oldingi sahifada kirmasligingiz mumkin. Bundan tashqari, login emasligini tekshiring, chunki u cheksiz tugmalarga olib keladi. Ushbu kod ishlashi kerak.

public function boot ()
{
    $user = $this->account->user();
    if ( ! $user && ! Request::is('backend/*') && ! Request::is('login') )
    {
        return Redirect::to('/login');
    }
}
1
qo'shib qo'ydi