fun*_*iki 2 authentication android oauth parse-platform twitter-fabric
在建设一个小型Android应用程序,我决定尝试位数用手机号码登录并解析用于后端.
我如何使用Parse服务器验证Digits会话?
我从下面的例子开始,虽然我不确定这是否"正确"(改编自这篇文章).
Android客户端:
从数字请求auth(oauth?)标记和用户标识
一个.发送数字密钥和秘密,检索对象
使用Parse验证此会话
一个.发送电话号码,身份验证令牌和用户ID
湾 如果授权有效,则使用用户信息接收确认
解析:
Auth端点采用电话号码,身份验证令牌和用户ID
一个.使用twitter端点验证
湾 将身份验证令牌哈希和用户ID插入Sessions表(将来的请求将ping此表,而不是twitter)
C.向客户退回确认
以上是有道理的,但是使用Github登录的Parse示例似乎做了一些略微不同的事情.使用Parse,对第三方的初始请求来自Parse服务器,而不是客户端.
Github需要发送'state'参数,这似乎是Parse示例从服务器发送其初始请求的原因,而Digits不需要这样的参数.这会使Digits身份验证的安全性降低吗?有没有办法让这个过程更安全/更正确?
这是我当前解决方案的要点.
在Parse方面我发送的http请求看起来如下所示:
// 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'
});
}
});
Run Code Online (Sandbox Code Playgroud)
在Android方面,我向Parse服务器发送一个http请求,其中包含头部中的Parse会话信息:
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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2056 次 |
| 最近记录: |