2016-04-04 13 views
3

. Kullanıcı adı ve şifreli bir şifre geçen bir API kullanarak kullanıcılara giriş yapıyorum, bu yüzden kullanıcıları yalnızca kullanıcı adına yükleyemiyorum. Ben kullanıcı bilgilerini almak ve belirli bir güvenlik duvarı için kullanıcıları yetkilendirmek için GUARD kullanıyorumÖzelleştirme nasıl oluşturulur? Symfony sağlayıcısında beni hatırla Sağa sola dön Sorunumu açıklayacağım

. Çok uzak çok iyi. Ben beni hatırlar etkinleştirmek için wan zaman

Sorunum başlar. Açıkçası kullanıcı benim veritabanında saklanmadığı için, hatırlıyorum kullanıcı adıyla yükleme başarısız. Şu anda

Sorunu sınıf RememberMeServicesInterface uygulanması ve AbstractFormLoginAuthenticator uzanır benim bekçi sınıfında benim yeni sınıfını kullanarak aşmak.

Bunu yapmak için daha iyi bir yolu olmalı hemen hemen eminim bir kesmek gibi hissediyor bana dürüst olmak gerekirse. Ben Symfony'nin RememberMeServiceInterface, TokenBasedRememberMeServices ve PersistentTokenBasedRememberMeServices uygulamak 2 sınıfları sahip olduğunu fark etmiş kodunu kontrol etme

, birisi nasıl Ben de RememberMeService enjekte edebilir beni açıklamak ve benim kullanıcıyı yetkilendirmek için kullanabilirsiniz?

Yardım için topluluğa şimdiden teşekkür ederiz.

cevap

6

Sonunda beni hatırlar özel başarmak için bir yol bulduk. Bu adımlar şunlardır:

1) (

Bu sınıf, özel bir anahtarla Getkey() geçersiz kılar Symfony \ Bundle \ SecurityBundle \ DependencyInjection \ Güvenlik \ Fabrikası \ RememberMeFactory genişleten bir sınıf oluşturma ve oluşturma) bu yüzden kendi belirteci hizmeti security.authentication.rememberme.services.MYCUSTOMTOKENSERVICE

2) Symfony \ Component \ Security uzanan belirteç hizmet oluştur enjekte edebilir \ Http \ RememberMe \ TokenBasedRememberMeServices benim kimlik doğrulama mantığını ve özel UserProvider kullanabilir böylece işlev

3) my hizmet yml dosyası

customlistener.security.authentication.listener birlikte Bind \ Http \ RememberMe \ ResponseListener

4) Symfony \ Component \ Security uzanan bir dinleyici oluşturun: sınıfı: ### ## kamu: false

security.authentication.rememberme.services.customtokenservice: sınıfı: ### veli: "security.authentication.rememberme.services.abstract" soyut: true

5) Security.yml'de, dinleyicimi hatırlamak için getKey'de kullandığım dizeyi hatırlıyorum. Beni hatırlamak için aynı seçeneklerle hatırla beni

Bir çekicilik gibi çalıştım!

+0

Bunu gönderdiğiniz için teşekkür ederiz. Bunu Muhafız uygulamanızla birleştirebildiniz mi? –

+0

@ DebreczeniAndrás, soipo benzeri bir şey yapmayı denediniz mi? Ben de bu çalışma çözümü – Christian

+0

@Christian No, henüz değil ise cevabı bilmek istiyorum. Yakın zamanda 2.8'e yükseltme yapmayı başardım, bu yüzden henüz Guard'ı kullanarak ellerimi alamadım. Çözümlerimi en kısa sürede yayınladığımdan emin olurum. –

İlgili konular