/** * {@inheritdoc} */ public function onAuthenticationSuccess(Request $request, TokenInterface $token) { /** @var User $user */ $user = $token->getUser(); $token = $this->tokenManager->getOrCreate($user, $request->request->get('token_name') ?: 'API Token'); $response = new JsonResponse(['token' => $token->getToken()]); return $response; }
public function testGetOrCreate() { $registry = M::mock(ManagerRegistry::class); $user = new User(); $token1 = new ApiToken(); $token1->setName('token1'); $token2 = new ApiToken(); $token2->setName('token2'); $user->setApiTokens([$token1, $token2]); $manager = M::mock(ObjectManager::class); $registry->shouldReceive('getManager')->withNoArgs()->andReturn($manager); $manager->shouldReceive('persist')->withAnyArgs()->andReturn(); $manager->shouldReceive('flush')->withNoArgs(); $tm = new ApiTokenManager($registry); $token = $tm->getOrCreate($user, 'token3'); $this->assertInstanceOf(ApiToken::class, $token); $this->assertNotSame($token1, $token); $this->assertNotSame($token2, $token); $this->assertSame($user, $token->getUser()); $this->assertSame('token3', $token->getName()); }