/** * @test */ public function encode() { $salt = "8843d7f92416211de9ebb963ff4ce28125932878"; $encoder = new PasswordEncoder($salt); $this->assertEquals("4f0e4a59d58e630e85f3e00dc35881aa7216363a15016502d7ab0e1f7324a1b2", $encoder->encode("foobar")); $this->assertEquals("eefe67eb801a8374a72657d4743a4c594fe35ef64f3d053726d4e791ff8d14d1", $encoder->encode("foobarbaz")); }
/** * @param User $user * @return User */ public function invoke(User $user) { $user->setEncodedPassword($this->passwordEncoder->encode($user->getPassword())); $this->userRepository->add($user); $this->entityManager->flush(); $user->setPassword(null); return $user; }
/** * @param string $username * @param string $password * @return AccessToken|null */ public function invoke($username, $password) { $user = $this->findUser($username); if (!$user) { return false; } if ($user->getEncodedPassword() !== $this->passwordEncoder->encode($password)) { return false; } $token = $this->tokenGenerator->generate(); $period = $this->now() + self::PERIOD_HOURS * 3600; $accessToken = new AccessToken(); $accessToken->setUser($user)->setToken($token)->setPeriod($period); $this->accessTokenRepository->add($accessToken); $this->entityManager->flush(); return $accessToken; }