[英]Android & Twitter Fabric: Send a Particular Phone Number for Verification in Twitter-fabric Digits API
我已經在我的應用程序中添加了用於驗證電話號碼的代碼,一旦用戶驗證了他的電話號碼,便將該號碼添加到我的數據庫中。
現在,如果用戶再次登錄,我要求用戶再次驗證他的電話號碼,但是twitter fabric允許他/她驗證任何號碼,但我希望twitter fabric Digits可以驗證我從數據庫中提供給twitter fabrics Digits的電話號碼。
來自Fabric團隊的Todd。
這里最重要的考慮因素是您從服務器獲取位數詳細信息,然后直接發送給我們。 這樣,您的服務器就會收到受信任的用戶信息。
首先,查詢Digits以請求用戶ID,電話號碼和OAuth令牌。 您應該使用OAuth Echo來實現。
生成OAuth Echo標頭。
DigitsOAuthSigning
類提供了一種方便的方法來為用戶會話生成授權標頭。 DigitsOAuthSigning
依賴於TwitterAuthConfig
和TwitterAuthToken
。
TwitterAuthConfig
類封裝憑據以標識您的Twitter或Digits應用程序。 您可以從Digits類獲取此對象。
TwitterAuthToken
類表示Digits用戶的Twitter用戶憑證。 您可以從TwitterSession
或DigitsSession
獲取此對象。
TwitterAuthConfig authConfig = TwitterCore.getInstance().getAuthConfig();
TwitterAuthToken authToken = session.getAuthToken();
DigitsOAuthSigning oauthSigning = new DigitsOAuthSigning(authConfig, authToken);
使用OAuth Echo的最簡單方法是在客戶端中生成授權標頭。 使用這些標頭可以從應用程序外部(例如,從Web服務器服務器)發出OAuth Echo請求。
Map<String, String> authHeaders = oauthSigning.getOAuthEchoHeadersForVerifyCredentials();
authHeaders
映射包含X-Auth-Service-Provider
和X-Verify-Credentials-Authorization
密鑰。 您的Web服務器應采用X-Verify-Credentials-Authorization
,並使用它為X-Auth-Service-Provider
的URL設置請求的Authorization
標頭。 獲得標頭后,可以將其發送到Web服務器以驗證憑據。
URL url = new URL("http://api.yourbackend.com/verify_credentials.json");
HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();
connection.setRequestMethod("GET");
// Add OAuth Echo headers to request
for (Map.Entry<String, String> entry : authHeaders.entrySet()) {
connection.setRequestProperty(entry.getKey(), entry.getValue());
}
// Perform request
connection.openConnection();
為了提高安全性,在您的虛擬主機上,您應該:
驗證X-Verify-Credentials-Authorization
中的oauth_consumer_key
標頭值X-Verify-Credentials-Authorization
與您的oauth使用者密鑰相匹配,以確保用戶登錄到您的站點。 您可以使用oauth庫來解析標頭並明確匹配鍵值,例如parse(params['X-Verify-Credentials-Authorization']).oauth_consumer_key=<your oauth consumer key>.
通過解析uri並斷言域為api.digits.com來驗證X-Auth-Service-Provider
標頭,以確保您正在調用Digits。
驗證來自verify_credentials調用的響應,以確保用戶成功登錄
考慮將其他參數添加到簽名,以將您自己的應用程序會話與Digits會話綁定在一起。 使用替代形式getOAuthEchoHeadersForVerifyCredentials(Map<String, String> optParams)
提供其他參數以包括在OAuth服務URL中。 驗證服務URL中是否存在這些參數以及API請求是否成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.