0
를 인증하지 않고, 나는 다음과 같은 달성하려는 경우. 암호는 일반 텍스트입니다.확인은 사용자 자격 증명의 경기는 FOSUserbundle를 사용
2) 컨트롤러, 나는 평소와 같이 매개 변수를 구문 분석 : 자격 증명이 일치하는 경우
/**
* @Route("/api/token",name="api_token")
*/
public function tokenAction(Request $request) {
$username = $request->get('username');
$password = $request->get('password');
// ...
}
3) 마지막으로, 내가 뭔가를 반환합니다.
실제로 세션을 수정하지 않고, 즉 사용자를 실제로 인증하고 토큰을 설정하지 않고이 작업을 수행하고 싶습니다. 나는 신임장이 맞는지 만 확인하고 싶다.
UPDATE
허용 된 대답은하지만 당신이 활성 세션을 가지고 가정하에, 작동합니다.
/**
* @Route("/api/token",name="api_token", options={"expose"=true})
*/
public function getTokenAction(Request $request) {
$username = $request->get('username');
$password = $request->get('password');
$user = $this->getDoctrine()
->getRepository('YourUserClass')
->findOneBy(["username" => $username]);
$encoder = $this->get('security.encoder_factory')->getEncoder($user);
$isValidPassword = $encoder->isPasswordValid($user->getPassword(),
$password,
$user->getSalt());
if ($isValidPassword) {
// Handle success
} else {
// Handle error
}
}
http://symfony.com/doc/current/components/security/authentication.html#using-password-encoders – qooplmao