【问题标题】:Digits Authentication with Parse Server使用 Parse Server 进行数字身份验证
【发布时间】:2015-04-24 01:17:37
【问题描述】:

在构建一个小型 Android 应用时,我决定尝试使用Digits 使用电话号码登录,Parse 用于后端。

如何验证与 Parse 服务器的 Digits 会话?

我从以下示例开始,但我不确定这是否“正确”(改编自 this post)。

Android 客户端:

  1. 从数字请求身份验证(oauth?)令牌和用户ID

    一个。发送数字密钥和秘密,检索对象

  2. 使用 Parse 验证此会话

    一个。发送电话号码、身份验证令牌和用户 ID

    b.如果授权有效,则接收用户信息确认

解析:

  1. 身份验证端点接受电话号码、身份验证令牌和用户 ID

    一个。使用twitter endpoint 验证

    b.将身份验证令牌哈希和用户 ID 插入 Sessions 表(未来的请求将 ping 此表,而不是 twitter)

    c。向客户返回确认

上面说的有道理,但是Parse Example with Github login 似乎做的事情略有不同。使用 Parse,对第三方的初始请求是从 Parse 服务器发出的,而不是客户端。

Github 需要发送一个“状态”参数,这似乎是 Parse 示例从服务器发送其初始请求的原因,而 Digits 不需要这样的参数。这是否会降低数字身份验证的安全性?有没有办法让这个过程更安全/正确?

【问题讨论】:

  • 你把 2 个整合在一起了吗?

标签: android authentication oauth parse-platform twitter-fabric


【解决方案1】:

这是我当前解决方案的gist

在 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'
        });
    }
});

在 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);
    }

【讨论】:

  • 效果如何?您是否已启动,如果已启动,该解决方案的效果如何?
  • @Felker 这对于我们正在开发的应用程序来说效果很好。我们已经切换到应用引擎,所以我不确定这个解决方案是否仍然有效。我相信 Parse 正在关闭,但它可能适用于他们的 Nodejs 库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-24
  • 2021-01-29
  • 1970-01-01
  • 2013-06-19
相关资源
最近更新 更多