Maison >développement back-end >tutoriel php >pratique oauth2 en php
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
Par exemple, si un tiers obtient certains services via le compte utilisateur et le mot de passe, cela entraînera facilement une fuite
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
De plus, il a autorisé d'autres applications tierces si le. l'utilisateur modifie le mot de passe, la fonction tierce deviendra invalide
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)
L'utilisateur accède au client, et le client demande l'autorisation de l'utilisateur
L'utilisateur s'engage à autoriser
obtenue dans le étape précédente Autorisation, le client demande un jeton au serveur
Une fois que le serveur a confirmé qu'il est correct, il délivre le jeton au client
Le client obtient le jeton Après cela, vous pouvez demander les ressources correspondantes auprès du serveur
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.
{"error":"invalid_client","error_description":"The client credentials are invalid"}
Solution :
la base de données est-elle là doit être deux paramètres, client_id et client_screct
Lors de la demande, le corps doit apporter les valeurs de ces deux paramètres
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
Par exemple, si le tiers obtient certains services via des comptes d'utilisateurs et des mots de passe, cela entraînera facilement des fuites
Besoin de déterminer la durée de la période d'autorisation et l'étendue de la portée de l'autorisation
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
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)
L'utilisateur accède au client, et le client demande l'autorisation de l'utilisateur
L'utilisateur s'engage à autoriser
obtenue dans le étape précédente Autorisation, le client demande un jeton au serveur
Une fois que le serveur a confirmé qu'il est correct, il délivre le jeton au client
Le client obtient le jeton Après cela, vous pouvez demander les ressources correspondantes auprès du serveur
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.
{"error":"invalid_client","error_description":"The client credentials are invalid"}
Solution :
la base de données est-elle là doit être deux paramètres, client_id et client_screct
Lors de la demande, le corps doit apporter les valeurs de ces deux paramètres
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 :
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!