3

私はAFNetworkingと関連するグッズを使用しており、 AFOAuth2Clientをサブクラス化して、トークンなどで OAuth 作業を行いました。

テスト目的で、ページ/API エンドポイントにアクセスするためにユーザー名とパスワードを必要とする開発サーバーで作業しています。ページの 1 つを参照すると、小さなダイアログ ボックスが表示され、資格情報を入力すると、しばらくは問題ありません。私が理解しているように、これは「基本認証」または「基本アクセス認証」です。

したがって、AFOAuth2Client サブクラスをインスタンス化するときは、

[self setAuthorizationHeaderWithUsername:@"user" password:@"pass"];

プロンプトが表示されたらブラウザーに入力する適切なユーザー名とパスワードを使用しますが、このHTTPOperationWithRequest:方法を使用して開発サーバーにアクセスしようとすると拒否されます。

代わりに、クライアントをインスタンス化するときに、次のことを試します。

NSURLCredential *credential = [NSURLCredential credentialWithUser:@"user" password:@"pass" persistence:NSURLCredentialPersistenceNone];
[self setDefaultCredential:credential];

そして、これは私が行うすべてのリクエストに対して正常に機能します。サーバーが私を入れてくれます。

私が理解している限り、最初の方法はAuthorization:HTTPヘッダーに資格情報を設定することであり、2番目の方法は、リクエストが挑戦されたときにAuthorization:HTTPヘッダーに資格情報を設定することを要求します...同じことですよね?

最初の方法が失敗し、2 番目の方法が成功するのはなぜですか?

4

0 に答える 0