すべてのサービス メソッドの統合テストを作成したいと考えています。これらのメソッドは OAuth2 を使用して保護されており、iOS クライアントは gtm-oauth2 ライブラリを使用しています。
OCUnit テスト ケース内からユーザー名/パスワード資格情報を使用してアクセス トークンを取得するために記述できるコードは何ですか?
これを行った人は誰でも、Google コードを調べて時間を節約できますか?
すべてのサービス メソッドの統合テストを作成したいと考えています。これらのメソッドは OAuth2 を使用して保護されており、iOS クライアントは gtm-oauth2 ライブラリを使用しています。
OCUnit テスト ケース内からユーザー名/パスワード資格情報を使用してアクセス トークンを取得するために記述できるコードは何ですか?
これを行った人は誰でも、Google コードを調べて時間を節約できますか?
これは 3 段階のプロセスです。
まず、ユーザー名とパスワードを忘れてください。彼らはあなたを間違った方向に導くでしょう。
オフラインの時点で、更新トークンを生成する必要があります。これにはブラウザ セッションが必要です。これは、Google がユーザーに認証ダイアログを案内するためです。リフレッシュ トークンを取得したら、それを保存するか、テスト ハーネスに埋め込むことができます (これは、保護する価値のあるシークレットを持たないダミー ユーザーであると仮定します。必要に応じて、リフレッシュ トークンをユーザー名とパスワードに相当する oauth と考えることができます。
テスト セットアップでは、更新トークンを使用してアクセス トークンを要求します。それは単純な呼び出しです
POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded
client_id=8819981768.apps.googleusercontent.com&
client_secret={client_secret}&
refresh_token=1/6BMfW9j53gdGImsiyUH5kU5RsR4zwI9lUVX-tqf8JXQ&
grant_type=refresh_token
アプリケーションに付与されたアクセス権をユーザーが取り消していない限り、応答には新しいアクセス トークンが含まれます。このようなリクエストからのレスポンスを以下に示します。
{
"access_token":"1/fFBGRNJru1FQd44AzqT3Zg",
"expires_in":3920,
"token_type":"Bearer",
}
これらの詳細はhttps://developers.google.com/accounts/docs/OAuth2WebServer#offlineから取得されます