Android 使用解析服务器进行数字身份验证
在构建一个小型Android应用程序时,我决定尝试使用电话号码登录,并在后端使用 如何使用解析服务器验证Digits会话 我从下面的例子开始,虽然我不确定这是否“正确”(改编自) Android客户端:Android 使用解析服务器进行数字身份验证,android,authentication,oauth,parse-platform,twitter-fabric,Android,Authentication,Oauth,Parse Platform,Twitter Fabric,在构建一个小型Android应用程序时,我决定尝试使用电话号码登录,并在后端使用 如何使用解析服务器验证Digits会话 我从下面的例子开始,虽然我不确定这是否“正确”(改编自) Android客户端: 从数字请求身份验证(oauth?)令牌和用户id a。发送数字密钥和密码,检索对象 使用Parse验证此会话 a。发送电话号码、身份验证令牌和用户id b。如果授权有效,接收带有用户信息的确认 解析: 身份验证端点获取电话号码、身份验证令牌和用户id a。验证 b。将身份验证令牌哈希和用户id插
// Within a /verify_credentials webhook
Parse.Cloud.httpRequest({
method: 'GET',
url: req.get(headers[0]),
headers: {'Authorization': req.get(headers[1])},
success: function(httpResponse) {
var obj = JSON.parse(httpResponse.text);
res.status(httpResponse.status).send("success");
},
error: function(httpResponse) {
res.status(400).json({
error: 'Unable to make a twitter request'
});
}
});
在Android方面,我向解析服务器发送一个http请求,其中包含头中的解析会话信息:
TwitterAuthConfig authConfig = TwitterCore.getInstance().getAuthConfig();
// Cast from AuthToken to TwitterAuthToken
TwitterAuthToken authToken = (TwitterAuthToken)session.getAuthToken();
OAuthSigning oAuthSigning = new OAuthSigning(authConfig, authToken);
// First value should be the location we're querying to twitter.
// The second is the actual validation information
Map<String, String> authHeaders = oAuthSigning.getOAuthEchoHeadersForVerifyCredentials();
try {
cloud.verifyCredentials(
authHeaders.get("X-Auth-Service-Provider"),
authHeaders.get("X-Verify-Credentials-Authorization"),
session.getId(),
callback);
}
TwitterAuthConfig authConfig=TwitterCore.getInstance().getAuthConfig();
//从AuthToken强制转换为TwitterAuthToken
TwitterAuthToken authToken=(TwitterAuthToken)会话。getAuthToken();
OAuthSigning OAuthSigning=新的OAuthSigning(authConfig,authToken);
//第一个值应该是我们向twitter查询的位置。
//第二个是实际的验证信息
Map authHeaders=oAuthSigning.GetOAuthChoheaders for VerifyCredentials();
试一试{
cloud.verifyCredentials(
authHeaders.get(“X-Auth-Service-Provider”),
authHeaders.get(“X-Verify-Credentials-Authorization”),
session.getId(),
回调);
}
您成功地将2集成在一起了吗?效果如何?你发布了吗?如果是,这个解决方案是如何运行的?@Felker这对我们正在开发的应用程序来说效果很好。从那时起,我们已经切换到应用程序引擎,所以我不确定这个解决方案是否仍然有效。我相信Parse正在关闭,但它可能与他们的Nodejs库一起工作