1. Qu'est-ce que le protocole OAuth
OAuth (autorisation ouverte) est un standard ouvert.
Permet aux sites Web tiers d'accéder à diverses informations stockées par les utilisateurs chez le fournisseur de services avec l'autorisation de l'utilisateur.
Cette autorisation n'exige pas que l'utilisateur fournisse un nom d'utilisateur et un mot de passe au site Web tiers.
OAuth permet aux utilisateurs de fournir un jeton à un site Web tiers. Un jeton correspond à un site Web tiers spécifique, et le jeton ne peut accéder qu'à des ressources spécifiques dans un délai précis.
2. Le principe et le processus d'autorisation d'OAuth
Les trois parties impliquées dans le processus d'authentification et d'autorisation d'OAuth comprennent :
Fournisseur de services : Utilisation par l'utilisateur Le fournisseur de services est généralement utilisé pour stocker des messages, des photos, des vidéos, des contacts, des fichiers, etc. (comme Twitter, Sina Microwave, etc.).
Utilisateur : utilisateur du fournisseur de services.
Tiers : généralement un site Web qui souhaite accéder aux informations de l'utilisateur stockées auprès du fournisseur de services.
Par exemple, un site Web qui fournit des services d'impression de photos, sur lequel les utilisateurs souhaitent imprimer leurs albums photo en ligne stockés auprès du fournisseur de services.
Avant le processus de certification, le tiers doit demander au prestataire de services l'identifiant unique du service tiers.
Le processus d'authentification et d'autorisation OAuth est le suivant :
1. L'utilisateur visite un site Web tiers et souhaite exploiter certaines ressources stockées par l'utilisateur chez le fournisseur de services.
2. Le site Web tiers demande un jeton temporaire au fournisseur de services.
3. Une fois que le fournisseur de services a vérifié l'identité du site Web tiers, il accordera un jeton temporaire.
4. Une fois que le site Web tiers a obtenu le jeton temporaire, il dirigera l'utilisateur vers la page d'autorisation du fournisseur de services pour demander l'autorisation de l'utilisateur. Dans le processus, le jeton temporaire et l'adresse de retour du tiers. Le site Web du parti sera envoyé au fournisseur de services.
5. L'utilisateur saisit son nom d'utilisateur et son mot de passe sur la page d'autorisation du prestataire pour autoriser le site tiers à accéder aux ressources correspondantes.
6. Après une autorisation réussie, le prestataire de services dirigera l'utilisateur vers l'adresse de retour du site Web tiers.
7. Le site Web tiers obtient le jeton d'accès du fournisseur de services sur la base du jeton temporaire.
8. Le fournisseur de services accorde des jetons d'accès à des sites Web tiers en fonction du jeton et de l'autorisation de l'utilisateur.
9. Le site Web tiers utilise le jeton d'accès obtenu pour accéder aux ressources utilisateur correspondantes stockées dans le fournisseur de services.
3. Quels sont les sites Web qui prennent actuellement en charge OAuth ?
t.sina.com.cn
t.qq.com
t.sohu.com
t.163.com
www.douban.com
www.twitter.com
www.facebook.com
Google Buzz
Interface : /oauth/token?
Paramètres : (grant_type est codé en dur, d'autres deux personnalisations)
grant_type=password
username=development@cybergate-tech.com
password=oQd-BfT-cer-7LP
Exemple complet :http://localhost:9000/oauth/token?grant_type=password&username=development@cybergate-tech.com&password=oQd-BfT-cer-7LP
Exemple de résultat de retour :
{ "access_token": "beeaa54e-8391-4de0-8ba6-ce145b3fb812", "token_type": "bearer", "refresh_token": "8129769a-d804-46c7-856a-3bacd409b650", "expires_in": 3599, "scope": "read write" }
Interface :http://localhost:9000/oauth/token?
Paramètres : (refresh_token est déterminé en fonction de 1. Les autres paramètres sont codés en dur)
client_id=dashboard
client_secret=secret
grant_type=refresh_token
refresh_token=43dca105-627e -4f50-86e8-0c22c2f3abe9
Exemple : http://localhost:9000/oauth/token?client_id=dashboard&client_secret=secret&grant_type=refresh_token&refresh_token=43dca105-627e-4f50-86e8-0c22c2f3abe9
Résultat de retour
{ "access_token": "0135c92b-12ab-4af9-88f4-97ef85115e71", "token_type": "bearer", "refresh_token": "75d209b5-a30d-43a8-abcd-850e7fb62e76", "expires_in": 3599, "scope": "read write" }
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!