ホームページ  >  記事  >  ウェブフロントエンド  >  oAuth認証と認可

oAuth認証と認可

巴扎黑
巴扎黑オリジナル
2017-07-20 14:49:491842ブラウズ

1. OAuthプロトコルとは

OAuth(オープン認証)はオープンスタンダードです。

ユーザーの承認を前提として、サービスプロバイダーによってユーザーが保存したさまざまな情報にサードパーティのウェブサイトがアクセスできるようにします。

そして、この承認では、ユーザーがサードパーティの Web サイトにユーザー名とパスワードを提供する必要はありません。

OAuth を使用すると、ユーザーはサードパーティの Web サイトにトークンを提供でき、トークンは特定のサードパーティ Web サイトに対応し、そのトークンは特定の時間内に特定のリソースにのみアクセスできます。

2. OAuth の原理と認可プロセス

OAuth の認証と認可プロセスに関与する 3 つの当事者には以下が含まれます:

サービスプロバイダー: ユーザーが使用するサービスのプロバイダー。通常、メッセージ、写真、ビデオ、連絡先、ファイルなど (Twitter、Sina Microwave など)。

ユーザー: サービスプロバイダーのユーザー

サードパーティ: 通常、サービスプロバイダーに保存されているユーザーの情報にアクセスしようとする Web サイト。

たとえば、写真印刷サービスを提供する Web サイトで、ユーザーがサービス プロバイダーに保存されているオンライン フォト アルバムを印刷したいとします。

認証プロセスの前に、サードパーティはサービスプロバイダーにサードパーティサービスの一意の識別子を申請する必要があります。

OAuth 認証と認可のプロセスは次のとおりです:

1. ユーザーがサードパーティの Web サイトにアクセスし、ユーザーがサービス プロバイダーに保存している特定のリソースを操作したいとします。

2. サードパーティの Web サイトは、サービスプロバイダーに一時トークンを要求します。

3. サービスプロバイダーは、サードパーティの Web サイトの身元を確認した後、一時的なトークンを付与します。

4. サードパーティ Web サイトが一時トークンを取得すると、ユーザーはサービス プロバイダーの認証ページに誘導され、その過程で一時トークンとサードパーティ Web サイトの返信アドレスが送信されます。サービスプロバイダーに送信されます。

5. ユーザーは、サービスプロバイダーの認証ページにユーザー名とパスワードを入力して、サードパーティの Web サイトが対応するリソースにアクセスすることを許可します。

6. 認証が成功すると、サービスプロバイダーはユーザーをサードパーティの Web サイトの返信先アドレスに誘導します。

7. サードパーティの Web サイトは、一時トークンに基づいてサービスプロバイダーからアクセストークンを取得します。

8. サービスプロバイダーは、トークンとユーザー認証に基づいてサードパーティの Web サイトへのアクセス トークンを付与します。

9. サードパーティの Web サイトは、取得したアクセス トークンを使用して、サービス プロバイダーに保存されている対応するユーザー リソースにアクセスします。

3. 現在 OAuth をサポートしている Web サイトは何ですか?

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 は、一般的に使用される 2 つのインターフェイスがあります。

1. トークンを取得します

インターフェイス: /oauth/token?/oauth/token?

参数: (grant_type是写死的,其它的两个自定义)

  • grant_type=password

  • username=development@cybergate-tech.com

  • password=oQd-BfT-cer-7LP

完整的样例:http://localhost:9000/oauth/token?grant_type=password&username=development@cybergate-tech.com&password=oQd-BfT-cer-7LP

返回结果样例:

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

接口:http://localhost:9000/oauth/token?

参数:(refresh_token是根据1中的来定的.其它参数是写死的)

  • client_id=dashboard

  • client_secret=secret

  • grant_type=refresh_token

  • refresh_token=43dca105-627e-4f50-86e8-0c22c2f3abe9

样例: http://localhost:9000/oauth/token?client_id=dashboard&client_secret=secret&grant_type=refresh_token&refresh_token=43dca105-627e-4f50-86e8-0c22c2f3abe9

パラメーター: (grant_type はハードコードされており、他の 2 つはカスタマイズされています)

  • grant_type=password
    🎜
  • 🎜username=development @cybergate-tech .com🎜
  • 🎜password=oQd-BfT-cer-7LP🎜
🎜完全な例:http://localhost:9000/ oauth/token?grant_type=パスワード&ユーザー名=development@cybergate-tech.com&password=oQd-BfT-cer-7LP🎜🎜戻り結果の例:🎜
{
    "access_token": "0135c92b-12ab-4af9-88f4-97ef85115e71",
    "token_type": "bearer",
    "refresh_token": "75d209b5-a30d-43a8-abcd-850e7fb62e76",
    "expires_in": 3599,
    "scope": "read write"
}
🎜2. リフレッシュトークン🎜🎜インターフェース:http://localhost:9000/oauth /token?🎜🎜パラメータ: (refresh_token は 1 に基づいて決定されます。他のパラメータはハードコードされています)🎜
    🎜client_id=dashboard🎜
  • 🎜client_secret=secret🎜
  • 🎜grant_type=refresh_token
    🎜
  • 🎜refresh_token=43dca105-627e-4f50 -86e8-0c22c2f3abe9🎜
  • 🎜サンプル: http://localhost:9000/oauth/token?client_id=dashboard&client_secret=secret&grant_type=refresh_token&refresh_token=43dca105-627e-4f50-86e8-0c22c2f3abe 9🎜🎜戻り結果🎜rrreee

以上がoAuth認証と認可の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。