mirror of
				https://github.com/webmasterskaya/joomla-oauth-server.git
				synced 2025-10-31 11:53:22 +03:00 
			
		
		
		
	simple profile response
This commit is contained in:
		
							parent
							
								
									2d34c4eb08
								
							
						
					
					
						commit
						13c6ee3521
					
				| @ -11,10 +11,12 @@ namespace Webmasterskaya\Component\OauthServer\Site\Controller; | ||||
| 
 | ||||
| use Joomla\CMS\Application\CMSApplication; | ||||
| use Joomla\CMS\Component\ComponentHelper; | ||||
| use Joomla\CMS\Factory; | ||||
| use Joomla\CMS\MVC\Controller\BaseController; | ||||
| use Joomla\CMS\MVC\Factory\MVCFactoryInterface; | ||||
| use Joomla\CMS\Router\Route; | ||||
| use Joomla\CMS\Uri\Uri; | ||||
| use Joomla\CMS\User\UserFactoryInterface; | ||||
| use Joomla\Input\Input; | ||||
| use Laminas\Diactoros\ServerRequest; | ||||
| use Laminas\Diactoros\ServerRequestFactory; | ||||
| @ -26,6 +28,7 @@ use League\OAuth2\Server\Grant\ClientCredentialsGrant; | ||||
| use League\OAuth2\Server\Grant\ImplicitGrant; | ||||
| use League\OAuth2\Server\Grant\RefreshTokenGrant; | ||||
| use League\OAuth2\Server\RequestEvent as LeagueRequestEvent; | ||||
| use League\OAuth2\Server\ResourceServer; | ||||
| use Webmasterskaya\Component\OauthServer\Administrator\Event\RequestAccessTokenEvent; | ||||
| use Webmasterskaya\Component\OauthServer\Administrator\Event\RequestEvent; | ||||
| use Webmasterskaya\Component\OauthServer\Administrator\Event\RequestRefreshTokenEvent; | ||||
| @ -313,4 +316,49 @@ class LoginController extends BaseController | ||||
| 
 | ||||
|         return $this; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @throws OAuthServerException | ||||
|      * @throws \Exception | ||||
|      * @since  version | ||||
|      */ | ||||
|     public function profile(): LoginController | ||||
|     { | ||||
|         /** | ||||
|          * @var ClientModel      $clientModel | ||||
|          * @var AccessTokenModel $accessTokenModel | ||||
|          */ | ||||
|         $clientModel           = $this->factory->createModel('Client', 'Administrator', ['request_ignore' => true]); | ||||
|         $accessTokenModel      = $this->factory->createModel('AccessToken', 'Administrator', ['request_ignore' => true]); | ||||
|         $accessTokenRepository = new AccessTokenRepository($accessTokenModel, $clientModel); | ||||
|         $params                = ComponentHelper::getParams('com_oauthserver'); | ||||
| 
 | ||||
|         if ($params->get('key_method_paste')) | ||||
|         { | ||||
|             $public_key = $params->get('public_key_raw'); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             $public_key = $params->get('public_key_path'); | ||||
|         } | ||||
| 
 | ||||
|         $server  = new ResourceServer($accessTokenRepository, $public_key); | ||||
|         $request = ServerRequestFactory::fromGlobals(); | ||||
|         $request = $server->validateAuthenticatedRequest($request); | ||||
|         /** @var \Joomla\CMS\User\User $user */ | ||||
|         $user = Factory::getContainer()->get(UserFactoryInterface::class)->loadUserById($request->getAttribute('oauth_user_id')); | ||||
| 
 | ||||
|         $this->app->loadIdentity($user); | ||||
| 
 | ||||
|         $data = [ | ||||
|             'full_name' => $user->name, | ||||
|             'email'     => $user->email, | ||||
|             'login'     => $user->username, | ||||
|             'id'        => $user->id, | ||||
|         ]; | ||||
| 
 | ||||
|         echo json_encode($data); | ||||
| 
 | ||||
|         return $this; | ||||
|     } | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user