35K Views

Symfony Api Rest + OAuth2

Updated 16 December 2021

Facebook Linkedin

Dans cet Article nous allons continuer notre voyage avec l’api de développement à l’aide de Oauth2 comme Protocole d’Autorisation.

Notre Précédente Api de développement les articles sont répertoriés ci-dessous:

  1. Savon VS Repos
  2. Api Rest

Comprendre OAuth2:

L’autorisation OAuth 2.0 cadre permet à une application tierce pour obtenir un accès limité à un service HTTP, nom d’un propriétaire de la ressource.

voici quelques liens que j’ai trouvé utile:

 

OAuth2 avec Symfony:

Symfony fournit FOSOAuthServerBundle, qui peut être utilisé pour le serveur-côté de la mise en œuvre de OAuth2.

instructions peut être trouvé here.

Autoriser et un jeton itinéraires « @FOSOAuthServerBundle/Resources/config/routing/authorize.xml » & « @FOSOAuthServerBundle/Resources/config/routing/token.xml » défini dans le routage.yml sera utilisé pour la génération jeton d’Accès.

OAuth Serveur dispose de 3 points de terminaison. Chaque point de terminaison effectue une fonction distincte dans le processus d’authentification OAuth.

Autoriser l’Extrémité – L’utilisateur est redirigé ici par le client pour autoriser la demande.
Jeton de point de Terminaison – Le client fait une demande à cet effet afin d’obtenir un Jeton d’Accès. C’est même comme gage de l’URL définie dans le routage.yml.
Ressource de point de Terminaison(s) – Le client fournit un Jeton d’Accès valide pour une demande de ressource(s) à cet effet, comme /utilisateurs.json.

 

les types de Subventions fournies dans OAuth2:

OAuth2 fournit différents types de Subventions. Ces Types de Subventions permettra de vous exposer de multiples façons pour un client pour générer un Jeton d’Accès.

1. Le Code d’Autorisation:

Le Code d’Autorisation type de subvention est utilisé lorsque le client souhaite faire une demande d’accès à des ressources protégées au nom d’un autre utilisateur (c’est à dire une 3ème partie). en savoir plus sur le code d’autorisation
Exemple de Demande
Les Codes d’autorisation sont récupérées à l’aide d’Autoriser le Contrôleur. Le client doit envoyer à l’utilisateur pour l’authentification OAuth du serveur d’Autoriser l’URL.

Etape 1: tout d’Abord, l’utilisateur est redirigé vers l’Autoriser URL:

Succès d’une demande de transmettre automatiquement le client, le code d’autorisation dans l’URL (fourni redirect_uri URL) comme

Etape 2: après cela, un jeton peut être demandée en utilisant le code d’autorisation de jeton d’url,

Un succès de la demande de jeton sera de retour standard jeton d’accès au format JSON:

2. Mot de passe de la Subvention (Ressources Propriétaire de Subvention)

Des ressources du Propriétaire nom d’utilisateur et mot de passe sont fournis avec la demande, et un jeton est émis lors de l’authentification réussie.

La réussite de l’Authentification entraînera jeton d’accès,

3. Informations d’Identification du Client Grant

Le client utilise ses informations d’identification pour récupérer un jeton d’accès directement, ce qui permet l’accès à des ressources dans le cadre du système de contrôle du client

Note: jeton d’Accès généré par le client des informations d’identification de subvention ne peut être utilisé pour lire la ressource. depuis ces jeton d’Accès n’est pas authentifié par un utilisateur.

4. Actualiser Jeton Grant

Jeton d’accès(s) a une durée de vie limitée. donc, nous avons besoin de rafraîchir jeton expiré à l’aide d’actualisation des jetons fournis avec des jetons d’accès.

Demande:

Résultat sur la réussite de demande:

Demande une ressource de point de terminaison:

Si vous demande de ressource Sécurisée effet garanti api pare-feu (fos_oauth: true), sans aucun jeton d’accès. ensuite, il faudra en conséquence,

pour demander des ressources sécurisées, ajouter l’Autorisation en-tête de demande

 

renvoyer des données à partir de symfony contrôleur:

Dans la manette correspondante des ressources.json de données de retour

Suggestions:

  1. Retour adapté le code d’état avec la réponse.
  2. au Lieu de s’appuyer sur le code de statut HTTP entier dans votre code, utiliser des constantes à partir de la classe de Réponse.
  3. Si vous utilisez réponse json, puis utiliser les JsonResponse de Classe au lieu de Réponse de la Classe.

Exemple:

qui Plus est:

Maintenant, vous avez la plate-forme pour le développement de l’Api. donc, aller sur et en développer un.

Depuis Api est indépendant de la plateforme, de sorte qu’il peut être consommé par toutes les Api Client.

Category(s) API uvdesk
. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.