首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android & Twitter Fabric:在Twitter-fabric Digits API中发送特定的电话号码进行验证

Android & Twitter Fabric:在Twitter-fabric Digits API中发送特定的电话号码进行验证
EN

Stack Overflow用户
提问于 2017-03-13 00:37:21
回答 1查看 251关注 0票数 0

我已经在我的应用程序中添加了验证电话号码的代码,一旦用户验证了他的电话号码,我就将该号码添加到我的数据库中。

现在,如果用户再次登录,我要求用户再次验证他的电话号码,但twitter fabric允许他/她验证任何号码,但我希望twitter fabric Digits验证我从数据库中提供给twitter fabric数字的电话号码。

EN

回答 1

Stack Overflow用户

发布于 2017-03-13 22:42:57

面料小组的托德。

这里最重要的考虑因素是您从您的服务器获取数字详细信息,然后直接发送给我们。这样,您的服务器就可以接收受信任的用户信息。

首先,查询数字以请求userID、电话号码和OAuth令牌。您应该使用OAuth Echo来实现这一点。

用于生成OAuth回声标头的

DigitsOAuthSigning类提供了一种为用户会话生成授权头的便捷方法。DigitsOAuthSigning依赖于TwitterAuthConfigTwitterAuthToken

TwitterAuthConfig类封装凭据以标识您的Twitter或Digits应用程序。您可以从Digits类中获取此对象。

TwitterAuthToken类表示Twitter用户的用户凭证。您可以从TwitterSessionDigitsSession获取此对象。

代码语言:javascript
复制
TwitterAuthConfig authConfig = TwitterCore.getInstance().getAuthConfig();
TwitterAuthToken authToken = session.getAuthToken();
DigitsOAuthSigning oauthSigning = new DigitsOAuthSigning(authConfig, authToken);

使用OAuth回显的最简单方法是在客户端中生成authorization标头。使用这些标头从应用程序外部(例如,从您的web服务器服务器)发出OAuth回显请求。

代码语言:javascript
复制
Map<String, String> authHeaders = oauthSigning.getOAuthEchoHeadersForVerifyCredentials();

authHeaders映射包含X-Auth-Service-ProviderX-Verify-Credentials-Authorization密钥。您的web服务器应采用X-Verify-Credentials-Authorization中的值,并使用它将请求的Authorization标头设置为X-Auth-Service-Provider中的URL。一旦您有了标题,您就可以将它们发送到您的web服务器以验证凭据。

代码语言:javascript
复制
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();

为了获得更高的安全性,在您的web主机上,您应该:

验证X-Verify-Credentials-Authorization中的oauth标头值是否与您的oauth_consumer_key使用者密钥匹配,以确保用户正在登录您的站点。您可以使用oauth库来解析标头并显式匹配键值,例如parse(params['X-Verify-Credentials-Authorization']).oauth_consumer_key=<your oauth consumer key>.

通过解析uri并断言域为api.digits.com来验证X-Auth-Service-Provider报头,以确保您正在呼叫数字。

验证来自verify_credentials调用的响应,以确保用户成功登录

考虑向签名添加额外的参数,以便将应用程序自己的会话绑定到Digits会话。使用备用表单getOAuthEchoHeadersForVerifyCredentials(Map<String, String> optParams)提供要包括在OAuth服务getOAuthEchoHeadersForVerifyCredentials(Map<String, String> optParams)中的其他参数。验证这些参数是否存在于服务URL中,以及API请求是否成功。

Reference on Verifying Digits Users in Android

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42750036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档