[英]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.