2013-09-24 32 views
5

Şu anda üzerinde çalıştığım proje bir yönetici konsolunda ve normal önyüzde bölünmüş durumda. Hem ön hem de arka uç aynı Laravel örneğindedir.Laravel 4'te Birden Çok Kimlik Doğrulama oturumu

Ön bölümde, yalnızca ön uç için çalışan bir kullanıcı oturum açma sistemi oluşturmaya çalışıyorum. Farklı bir tablo ve model kullanır ve yönetici için Kullanıcı modeline göre farklı ilişkilere sahiptir.

Ne anlayamadığım, her iki sistemde de Laravel Auth sınıfını kullanmanın bir yoludur. Mantıksal Auth, tek bir yapılandırma dosyası ve daha fazla nokta, bir oturum adı kullanır.

İleri sürülen bir çözüm, farklı bir tablo ve model kullanmak ve ayrım için bir çeşit acl kullanmak değildir. Ancak ön ve arka uçları bu şekilde karıştırma fikrini sevmiyorum. Özellikle de, bu, bir kullanıcı için daha önce yönetici kullanıcı modeline ön-kullanıcı için daha önce benzersiz olan tüm alanları ve ilişkileri vermem gerektiği anlamına gelir.

Sadece işleri yapmanın doğru yolu görünmüyor. Farklı bir kimlik doğrulama sistemine geçebilir veya yöneticiyi kendi yapılandırmalarıyla bir pakette ayırabilirdim, ancak projenin kapsamı bu tür zaman harcama değişikliklerine izin vermez.

Sağladığınız herhangi bir fikri memnuniyetle karşılarız.

+1

bu http://stackoverflow.com/questions/18785754/laravel-4-need-to-auth-with-2-different-tables – cyvvilek

cevap

5

Bu benim de son zamanlarda karşılaşılan bir sorundur. Özellikle geliştirme ve üretim ortamlarınız varsa, tüm ayrı çevre çok kolay olmadı.

https://github.com/ollieread/multiauth numaralı telefondan bulabileceğiniz bu sorunu çözmek için biraz zaman harcadım. paket kendisi aslında bunun birden çok örneğini kullanmanızı sağlar Auth için fabrika sınıfı,, yani şöyle erişmek:

Auth::admin()->check(); 
Auth::user()->check(); 
Auth::whatever()->check(); 

Ben paket sizin veya bu yaklaşımın arayan başkasının yardımcı olur.

2

Emin değilim, ama belki işe yarar. Neden yönetici için ayrı bir ortam yaratmaya çalışmayın. Ve sonra üretim için app/config/admin/session.php ve app/config/session.php gibi bir şey (varsayılan ortamdır) olacaktır.

nasıl kurulum ortamları http://andrewelkins.com/programming/php/how-to-set-laravel-4-environments/

Burada görebilirsiniz Ama bu sadece bir fikir söylediği gibi, bundan pek emin değilim :)

+0

ortamlar açıkça buraya gitmek yoludur Helful olabilir. Admin.yoursite.com'u kurun ve yapılandırma dosyalarını buna göre değiştirin. Bu, kullanıcı sınıfınıza, role özgü olan özel yöntemler eklemediğinizi varsayar. – Makita

1

Farklı kullanıcı varlıkları nadiren veya aynı arabirimi görmeye hiç gerek duymazsa, uygulamayı iki kod alanına ayırmayı düşünmeniz gerektiği gibi görünüyor. Açıkça aynı veritabanını sorgulayacaklardı.

Bu yalnızca kimlik doğrulama sorunlarınızı çözmeyecek, aynı zamanda kodun daha da kolay bir şekilde yapılmasını sağlayacaktır. Örneğin, güncellemeleri yönetici konsoluna aktarırken, yalnızca (büyük ihtimalle) daha kritik bir ön cepheyi sürdürüp çalıştırırken bu uygulamayı bakım moduna almanız gerekir.

+0

Bu aslında çok iyi bir nokta.Bu kod tabanlarını bölme fikrini reddettik çünkü davadaki kaygılar, faydaları daha ağır basıyordu. Bununla birlikte, ayrı bakım modları hakkındaki nokta, ölçeğe işaret edebilir. –

İlgili konular