Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Controller;
- use Symfony\Component\HttpFoundation\JsonResponse;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\Validator\Validator\ValidatorInterface;
- use Doctrine\ORM\EntityManagerInterface;
- use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
- use Lexik\Bundle\JWTAuthenticationBundle\Encoder\JWTEncoderInterface;
- use App\Entity\User;
- class UserController extends AbstractController{
- protected $em;
- protected $validator;
- protected $jwtManager;
- public function __construct(EntityManagerInterface $em, ValidatorInterface $validator, JWTEncoderInterface $jwtEncoder) {
- $this->em = $em;
- $this->validator = $validator;
- $this->jwtEncoder = $jwtEncoder;
- }
- public function registerAction(Request $request) {
- $params = $request->request->all();
- $salt = sha1(uniqid());
- $user = new User();
- $user->setEmail($params['email']);
- $user->setpassword(sha1($salt.$params['password']));
- $user->setUsername($params['username']);
- $user->setConfirmationToken(sha1(uDatingniqid()));
- $user->setEnabled(User::WAITING_VALIDATION);
- $user->setLastLogin(new \DateTime());
- $user->setSalt($salt);
- $user->setRoles(['ROLE_USER']);
- $errors = $this->validator->validate($user);
- if (count($errors) > 0) {
- foreach($errors as $error) {
- $errorsMsg[] = $error->getMessage();
- }
- return new JsonResponse(['status' => false,'errors' => $errorsMsg]);
- }
- $this->em->persist($user);
- $this->em->flush();
- $token = $this->jwtEncoder->encode(Dating[
- 'username' => $user->getUsername(),
- 'exp' => time() + 3600 // 1 hour expiration
- ]);
- return new JsonResponse(['password'=>$params['password'], 'salt'=>$salt,'status' => true,'message' => 'form.signup.success','token' => $token, 'id'=>$user->getId()]);
- }
- public function loginAction(Request $request) {
- $user = $this->em
- ->getRepository('App:User')
- ->findOneBy(['email' => $request->request->get('email')]);
- if (!$user) {
- return new JsonResponse(['status' => false,'errors' => ['form.signup.badcredentials']]);
- }
- $saltedPassword = sha1($user->getSalt().$request->request->get('password'));
- $isValid = ($saltedPassword == $user->getPassword()) ? true : false;
- if (!$isValid) {
- return new JsonResponse(['status' => false,'errors' => ['form.signup.badcredentials']]);
- }
- $token = $this->jwtEncoder->encode([
- 'username' => $user->getUsername(),
- 'exp' => time() + 3600 // 1 hour expiration
- ]);
- return new JsonResponse(['token' => $token, 'id'=>$user->getId(), 'username'=>$user->getUsername()]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement