Maison  >  Article  >  interface Web  >  oAuthentification et autorisation

oAuthentification et autorisation

巴扎黑
巴扎黑original
2017-07-20 14:49:491845parcourir

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

springboot encapsule le protocole oauth2 . Il contient deux interfaces couramment utilisées

1. Obtenir le jeton

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"
}

2. token

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!

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