Maison  >  Article  >  développement back-end  >  pratique oauth2 en php

pratique oauth2 en php

不言
不言original
2018-04-03 11:55:153464parcourir

Cet article présente la pratique de oauth2 en PHP. Il est partagé ici avec tout le monde et également pour référence par ceux qui en ont besoin. Voyons maintenant ensemble


oauth2. résout le problème :

  1. Par exemple, si un tiers obtient certains services via le compte utilisateur et le mot de passe, cela entraînera facilement une fuite

  2. Il est nécessaire de résoudre le problème de la durée de la période d'autorisation et de la portée de cette autorisation

  3. De plus, il a autorisé d'autres applications tierces si le. l'utilisateur modifie le mot de passe, la fonction tierce deviendra invalide

oauth2 quatre méthodes d'autorisation :


Le client doit obtenir le l'autorisation de l'utilisateur (octroi d'autorisation) pour obtenir le jeton (jeton d'accès) . OAuth 2.0 définit quatre méthodes d'autorisation.

  • Mode code d'autorisation (code d'autorisation)

  • Mode simplifié (implicite)

  • Mode mot de passe (identifiants de mot de passe du propriétaire de la ressource) Nous utilisons ce

  • mode client (identifiants du client)

processus oauht2

  1. L'utilisateur accède au client, et le client demande l'autorisation de l'utilisateur

  2. L'utilisateur s'engage à autoriser

  3. obtenue dans le étape précédente Autorisation, le client demande un jeton au serveur

  4. Une fois que le serveur a confirmé qu'il est correct, il délivre le jeton au client

  5. Le client obtient le jeton Après cela, vous pouvez demander les ressources correspondantes auprès du serveur

  6. Une fois que le serveur a déterminé si le jeton est confirmé, il ouvre les ressources au client pour l'accès

Résumé : En fait, la deuxième étape ci-dessus concerne les 4 méthodes d'autorisation, et l'autorisation par mot de passe est utilisée. Ce type d'autorisation nécessite un niveau élevé de confiance de la part du. client. En fait, cela signifie apporter le compte utilisateur et le mot de passe au serveur pour demander un jeton, et renvoyer le jeton une fois qu'il est correct au client.

Des problèmes sont survenus :

1. Certificat client invalide

{"error":"invalid_client","error_description":"The client credentials are invalid"}

Solution :

  1. la base de données est-elle là doit être deux paramètres, client_id et client_screct

  2. Lors de la demande, le corps doit apporter les valeurs de ces deux paramètres

2. Empêcher Méthode d'échec des demandes simultanées de l'application frontale

1. Définissez la configuration de la classe RefreshToken :

 $grantType1 = new RefreshToken($storage, array(            'always_issue_new_refresh_token' => false  #这个可以防止每次生成新的refresh_token
        ));

Ressources de référence :

Document officiel

URL github

logique d'implémentation oauth

oauth2 résout le problème :

  1. Par exemple, si le tiers obtient certains services via des comptes d'utilisateurs et des mots de passe, cela entraînera facilement des fuites

  2. Besoin de déterminer la durée de la période d'autorisation et l'étendue de la portée de l'autorisation

  3. Là Il existe également d'autres applications tierces qui ont été autorisées par eux-mêmes. Si l'utilisateur modifie le mot de passe, provoquant l'échec des fonctions tierces

oauth2 quatre méthodes d'autorisation :

Le client doit obtenir l'autorisation de l'utilisateur (octroi d'autorisation) pour obtenir le jeton (jeton d'accès). OAuth 2.0 définit quatre méthodes d'autorisation.

  • Mode code d'autorisation (code d'autorisation)

  • Mode simplifié (implicite)

  • Mode mot de passe (identifiants de mot de passe du propriétaire de la ressource) Nous utilisons ce

  • mode client (identifiants du client)

processus oauht2

  1. L'utilisateur accède au client, et le client demande l'autorisation de l'utilisateur

  2. L'utilisateur s'engage à autoriser

  3. obtenue dans le étape précédente Autorisation, le client demande un jeton au serveur

  4. Une fois que le serveur a confirmé qu'il est correct, il délivre le jeton au client

  5. Le client obtient le jeton Après cela, vous pouvez demander les ressources correspondantes auprès du serveur

  6. Une fois que le serveur a déterminé si le jeton est confirmé, il ouvre les ressources au client pour l'accès

Résumé : En fait, la deuxième étape ci-dessus concerne les 4 méthodes d'autorisation, et l'autorisation par mot de passe est utilisée. Ce type d'autorisation nécessite un niveau élevé de confiance de la part du. client. En fait, cela signifie apporter le compte utilisateur et le mot de passe au serveur pour demander un jeton, et renvoyer le jeton une fois qu'il est correct au client.

Des problèmes sont survenus :

1. Certificat client invalide

{"error":"invalid_client","error_description":"The client credentials are invalid"}

Solution :

  1. la base de données est-elle là doit être deux paramètres, client_id et client_screct

  2. Lors de la demande, le corps doit apporter les valeurs de ces deux paramètres

2. Empêcher Méthode d'invalidation des demandes simultanées de l'application frontale

1. Définissez la configuration de la classe RefreshToken :

 $grantType1 = new RefreshToken($storage, array(            'always_issue_new_refresh_token' => false  #这个可以防止每次生成新的refresh_token
        ));

Ressources de référence :

Documentation officielle

URL github

logique de mise en œuvre oauth

Recommandations associées :

Accès PHP QQ login OAuth2 .0 Problèmes rencontrés pendant la période


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn