मेरे पास Symfony 2.0.x के लिए FOSUserBundle के बारे में कोई प्रश्न है। वहां प्रलेखन में आप उपयोगकर्ता नाम और ईमेल के साथ काम करने के लिए लॉगिन बदलने का एक तरीका ढूंढ सकते हैं। यह बहुत अच्छा काम करता है! लेकिन मैं सिर्फ ईमेल के साथ काम करने के लिए लॉगिन करना चाहता हूं। इसलिए मैंने अपने कस्टम यूज़र मैनेजर (मूल से विस्तारित) में एक फ़ंक्शन जोड़ा जो सुनिश्चित करता है कि आप बस अपने ईमेल से लॉगऑन कर सकते हैं।ईमेल के साथ FOSUserBundle लॉगिन (Symfony2)
namespace Frontend\UserBundle\Model;
use FOS\UserBundle\Entity\UserManager;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
class CustomUserManager extends UserManager
{
public function loadUserByUsername($email)
{
/*$user = $this->findUserByUsernameOrEmail($username);
if (!$user) {
throw new UsernameNotFoundException(sprintf('No user with name "%s" was found.', $username));
}
return $user;*/
//Change it to only email (Default calls loadUserByUsername -> we send it to our own loadUserByEmail)
return $this->loadUserByEmail($email);
}
public function loadUserByEmail($email)
{
$user = $this->findUserByEmail($email);
if (!$user) {
throw new UsernameNotFoundException(sprintf('No user with email "%s" was found.', $email));
}
return $user;
}
}
लेकिन अब मुझे एक समस्या है कि मुझे सत्र में सहेजे गए मानों को नियंत्रित करने की आवश्यकता है। वह सत्र में अपना उपयोगकर्ता नाम सहेजता है और जब सिस्टम यह जांचता है तो वहां कोई ईमेल नहीं होगा (क्योंकि वह केवल ईमेल पर जांच करता है) उपलब्ध है।
तो मेरा प्रश्न यह है कि आप उपयोगकर्ता नाम चर के अंदर संग्रहीत मान को कैसे/कहां बदल सकते हैं।
धन्यवाद!
हे नोफ्लैग के लिए धन्यवाद - यह काम मेरे लिए बिल्कुल सही था। मैं इसे कॉन्फ़िगरेशन संदर्भ में ढूंढ रहा था। लेकिन, क्योंकि यह वास्तव में सुरक्षा कॉन्फ़िगरेशन में है [FOSUserBundle कॉन्फ़िगरेशन संदर्भ] में नहीं है (https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/configuration_reference.md)। किसी और के लिए जिसने वही किया था - आपको इसे [FOSUserBundle के लिए सुरक्षा कॉन्फ़िगरेशन दस्तावेज़] में देखना होगा (https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/logging_by_username_or_email.md)। – jfgrissom
यह एचटीएमएल 5 इनपुट प्रकार है, हाल ही के ब्राउज़र के लिए केवल –
हालांकि यह काम करता है और वैसे भी करने के लिए समझ में आता है, ध्यान रखें कि कोई उपयोगकर्ता देव उपकरण खोल सकता है और 'type = "ईमेल"' टाइप 'टाइप = "टेक्स्ट" ' फिर उपयोगकर्ता नाम के साथ लॉग इन करें।यह स्पष्ट रूप से आपकी स्थिति पर निर्भर करता है कि क्या यह एक समस्या होगी या नहीं। – bassplayer7