OAuthエコーでは、APIとやり取りしている間のOAuth 認証をサードパーティへしっかりと任せます。 例えば、ユーザーの資格情報の検証をあなたのアプリからではなくあなたのサーバ(サードパーティ)から行いたいような場合です。
OAuth エコーについての詳細な技術情報は ここで参照できます。
Use OAuth EchoOAuth Echo is a means to securely delegate OAuth authorization with a third party while interacting with an API. For example, you may wish to verify a user’s credentials from your app’s server (the third party) rather than your app. More technical information about OAuth Echo can be found here. |
OAuthSigningのインスタンスを作成するには、TwitterAuthToken
と TwitterAuthConfig
が必要です。
TwitterAuthConfig
クラスは、あなたのTwitterアプリやーションやDigitsアプリケーションを識別するための資格情報をカプセル化します。
TwitterCore
クラスからこのオブジェクトを取得することができます。
TwitterAuthToken
クラスは、 Digits ユーザーのTwitter におけるユーザー資格情報を表します。 TwitterSession
もしくはDigitsSession
からこのオブジェクトを取得できます。
TwitterAuthConfig authConfig = TwitterCore.getInstance().getAuthConfig(); TwitterAuthToken authToken = session.getAuthToken(); OAuthSigning oauthSigning = new OAuthSigning(authConfig, authToken);
Instantiating OAuthSigningOAuthSigning relies on the The The TwitterAuthConfig authConfig = TwitterCore.getInstance().getAuthConfig(); TwitterAuthToken authToken = session.getAuthToken(); OAuthSigning oauthSigning = new OAuthSigning(authConfig, authToken); |
OAuth エコーを使用する最も簡単場方法は、認証ヘッダをリクエストして、アプリ外からverify_credentials
へのリクエストを作成することです。
Map authHeaders = oauthSigning.getOAuthEchoHeadersForVerifyCredentials();
ヘッダを取得したら、それをバックエンドに渡して、アプリ内で使われているユーザーセッションの証明情報を検証することができます。
URL url = new URL("http://api.yourbackend.com/check_credentials.json"); HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); connection.setRequestMethod("GET"); // Add OAuth Echo headers to request for (Map.Entry entry : authHeaders.entrySet()) { connection.setRequestProperty(entry.getKey(), entry.getValue()); } // Perform request
このauthHeaders
map はX-Auth-Service-Provider
キーと X-Verify-Credentials-Authorization
キーを保持しています。
バックエンドでX-Verify-Credentials-Authorization
に設定されている値を取得し、その値をX-Auth-Service-Provider
に設定されているURLへリクエストする際のAuthorization
ヘッダに設定してください。
Creating OAuth Echo headersThe easiest way to use OAuth Echo is by requesting the headers to make a request to Map authHeaders = oauthSigning.getOAuthEchoHeadersForVerifyCredentials(); Once you have the headers, you can relay those to your backend to verify the credentials of the user session in your application. URL url = new URL("http://api.yourbackend.com/check_credentials.json"); HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); connection.setRequestMethod("GET"); // Add OAuth Echo headers to request for (Map.Entry entry : authHeaders.entrySet()) { connection.setRequestProperty(entry.getKey(), entry.getValue()); } // Perform request The |