簡體   English   中英

Android和Twitter Fabric:發送特定的電話號碼以使用Twitter-fabric Digits API進行驗證

[英]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依賴於TwitterAuthConfigTwitterAuthToken

TwitterAuthConfig類封裝憑據以標識您的Twitter或Digits應用程序。 您可以從Digits類獲取此對象。

TwitterAuthToken類表示Digits用戶的Twitter用戶憑證。 您可以從TwitterSessionDigitsSession獲取此對象。

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-ProviderX-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請求是否成功。

關於在Android中驗證數字用戶的參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM