12

私はこのOauthの概念について調査を行ってきましたが、この概念についてはまだ非常に混乱しています。私の主な質問の1つは、GoogleアカウントまたはTwitterアカウントにどのように登録するかです。

たとえば、私のWebサイトに登録するには、ユーザー名/パスワード/電子メール/グループ名を指定する必要があるとします。私のウェブサイトから登録すると、それらのフィールドを非常に簡単に提供できます。ただし、ユーザーがgoogleを介して登録したいとします。それらのフィールドはどのように入力されますか?

私の理解では、Googleのクレデンシャルで登録すると、必須フィールドに入力する私のWebサイトのページにリダイレクトされます。これが正しいかどうかはわかりません。誰かが私がこれをもっと理解するのを手伝ってくれる?

4

2 に答える 2

13

基本的に OAuth は次のように機能します (バージョンによっては、これらのポイントは複数のステップで構成されます)。

  • ユーザーをプロバイダーにリダイレクトし、そこでログインします
  • ユーザーはあなたにリダイレクトされ、あなたはアクセストークンを受け取ります

このアクセス トークンを使用して、プロバイダーからユーザー データを要求できます。通常、プロバイダーは、ユーザーの電子メール アドレス、氏名、および (プロバイダー固有の)ユーザー IDを要求するために使用できる呼び出しを提供しますが、これは OAuth の一部ではありません。

この情報を使用して、そのユーザーがサイトにログインしたかのように処理する方法は、完全に自分次第です。新しいユーザー IDが表示されるたびに、自分の側で新しいユーザー オブジェクトを作成することをお勧めします。

于 2012-09-18T17:51:24.253 に答える
6

OAuth2 を使用して新しいユーザー登録がどのように行われるかを理解する前に、いくつかの基本的な概念を明確にする必要があります。これらは:

  • リソース所有者 (あなた、人間)
  • ID プロバイダー (Google、Facebook、Twitter など)
  • リソース サーバー (ID プロバイダーまたはその他のサービスと同じ)
  • リソース (アクセスしたいもの)
  • クライアント アプリ (それらにアクセスするために使用しているアプリ)

新規ユーザー登録の場合は、クライアント アプリがリソースへのアクセス権を付与するための承認を要求するのと同じ手順に従います。これにより、ログイン ページがトリガーされ、ユーザーがログインし、認証コードが (IdP によって) 作成され、クライアント アプリに送り返されます。クライアント アプリは、このコードをアクセス トークンと交換します (いくつかの暗号化署名が関係しています。ドキュメントを読んでください - 基本的に、クライアント アプリが独自の ID を証明できるようにします)。

このアクセス トークンは、リソース (この場合は新しいユーザー プロファイル) へのアクセスを要求するために使用されます。これは、名前、電子メール、写真などです。これを使用して、クライアント アプリ プロファイル データベースに新しい行を作成します。新しいユーザー アカウントが作成されます。

その後のログインでは、クライアント アプリはこのアクセス トークンを使用して Google Auth サーバーとの接続を検証し、ローカル セッション/Cookie を作成してユーザーをログインさせます。

これが明確であることを願っています。

于 2017-06-14T07:36:25.917 に答える