Post-kayıt otomatik kullanıcı kimlik doğrulaması
Olduğumuz bina bir iş uygulamasından bir yere kadar Symfony 2, ve yaptığım çalışma içine biraz Budak ile kullanıcı kayıt akışı: sonra kullanıcı hesabı oluşturur, öyle olmalılar otomatik giriş ile bu kimlik bilgilerini, yerine hemen olmak zorunda sağlamak için kimlik bilgilerini yeniden.
Herkes bu ile herhangi bir deneyim oldu, ya da doğru yönde beni işaret edebilir?
CEVAP
Symfony 2.6.x
Symfony olarak 2.6 security.context
security.token_storage
lehine önerilmiyor. Kontrolör şimdi sadece olabilir:
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use YourNameSpace\UserBundle\Entity\User;
class LoginController extends Controller{
public function registerAction()
{
$user = //Handle getting or creating the user entity likely with a posted form
$token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
$this->get('security.token_storage')->setToken($token);
//We no longer need to manually save the token to the session either.
//The token storage handles that
}
}
Bu kaldırılmış olsa da hala geriye doğru uyumlu olacak şekilde yapılmış security.context
kullanabilirsiniz. Symfony 3 için güncelleme için hazır olacak
Güvenlik için 2.6 değişiklikler hakkında daha fazla buradan okuyabilirsiniz: https://github.com/symfony/symfony/blob/2.6/UPGRADE-2.6.md
Symfony 2.3.x
Symfony 2.3 bunu yapmak için artık sadece güvenlik bağlamında simge olarak ayarlayabilirsiniz. Ayrıca, oturum belirteci kaydetmeniz gerekir.
Bir güvenlik duvarı gibi bir güvenlik dosyası varsayarsak:
// app/config/security.yml
security:
firewalls:
main:
//firewall settings here
Ve denetleyici bir eylem çok benzer:
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use YourNameSpace\UserBundle\Entity\User;
class LoginController extends Controller{
public function registerAction()
{
$user = //Handle getting or creating the user entity likely with a posted form
$token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
$this->get('security.context')->setToken($token);
$this->get('session')->set('_security_main',serialize($token));
//Now you can redirect where ever you need and the user will be logged in
}
}
* *9, Bu 4 parametre kabul eder bir oluşturmak için isteyeceksiniz token oluşturma: Kullanıcı Varlık, Kullanıcı Kimlik bilgileri, Güvenlik Duvarı Adı, Kullanıcı Rolleri. Dont kullanıcı belirteci geçerli olması için kimlik bilgilerini sağlamanız gerekir.
100% security.context
üzerinde token ayar varsa hemen yönlendirmek için gidiyoruz eğer gerekli olduğundan emin değilim. Ama yok o kadar zamanım kaldıysa zarar vermek gibi görünüyor.
O zaman önemli kısmı, oturum değişkeni ayarı. Değişkenleri adlandırma _security_
güvenlik duvarı adın, bu durumda main
ardından _security_main
yapıyor
Şişeyi kullanıcı kimlik doğrulaması...
ASP.NET MVC - Active Directory karşı k...
Ve ASP.NET MVC yetki kullanıcı kimlik ...
Nasıl web sitesi, TEMEL kimlik doğrula...
Kaydet kullanıcı kimlik doğrulaması To...