public function getUser(Login $login)
{
// check if we have the oauth_server attribute
if (!$login->getAttribute('oauth2_server')) {
throw new UserNotFoundException('User not found.');
}
// try to get the user from oauth
$oauth2 = $login->getAttribute('oauth2_server');
try {
$oauth2User = $oauth2->request()->getUserDetails();
// fire the event
$eventClass = new OAuth2Event($oauth2User, $oauth2);
$this->eventManager()->fire(OAuth2Event::OAUTH2_AUTH_SUCCESS, $eventClass);
} catch (\Exception $e) {
$this->httpSession()->delete('oauth_token');
throw new UserNotFoundException($e->getMessage());
}
// create the user object
$user = new User();
$user->populate($oauth2User->email, '', $login->getAttribute('oauth2_roles'), true);
return $user;
}