0

消費者が同時に複数のユーザーに代わって行動できるようにする認証プロバイダーを作成しています(まだ「当たり前」に行かないでください)。

私の oauth_consumer_registry テーブル (コンシューマーが独自の資格情報を保存する場所) には、次のエントリがあります。

ocr_id  ocr_usa_id_ref  ocr_consumer_key    
1       672             7e6418..........

コンシューマは、アクセスしたトークンを oauth_consumer_token に保存します

oct_id  oct_ocr_id_ref  oct_usa_id_ref  oct_token_type
31      1               672             access
32      1               672             request

ユーザーが自分自身を承認すると、消費者は彼に代わってアクセストークンを取得すると思います。そのため、コンシューマーはユーザーごとに 1 つのアクセス トークンを保存する必要があります。ただし、リクエスト トークンがアクセス トークンと交換されるたびに、既存のアクセス トークンは削除されます。したがって、データベースには 1 つのアクセス トークンのみが格納されます。何かが明らかに間違っているようです。

コンシューマー アプリにアクセス トークンを特定のユーザーに関連付けるように指示するにはどうすればよいですか?


私の頭をよぎった説明は、ユーザーごとに oauth_consumer_registry に新しい「コンシューマー」を登録する必要があるということです。そうですか?

4

1 に答える 1

0

コンシューマごとに、そのコンシューマはユーザーごとに 1 つのトークンを持っている必要があります。これは、コンシューマがユーザーに代わってプロバイダにアクセスしようとしているためです。プロバイダー側​​では、そのプロバイダーは、ユーザーごと、コンシューマーごとに 1 つのトークンを持つ必要があります。これは、個々のユーザーが外部コンシューマーに付与されたアクセスを制御できるようにすることを前提としています。

于 2012-04-10T16:12:36.480 に答える