簡體   English   中英

使用解析服務器進行數字身份驗證

[英]Digits Authentication with Parse Server

在構建一個小型Android應用程序時,我決定嘗試使用Digits登錄並使用電話號碼登錄並使用Parse作為后端。

如何驗證與解析服務器的Digits會話?

我從下面的示例開始,盡管我不確定這是否是“正確的”(改編自本文 )。

Android客戶端:

  1. 從數字請求身份驗證(oauth?)令牌和用戶ID

    一種。 發送數字密鑰和機密,檢索對象

  2. 使用Parse驗證此會話

    一種。 發送電話號碼,身份驗證令牌和用戶ID

    如果授權有效,則接收帶有用戶信息的確認

解析:

  1. 身份驗證端點采用電話號碼,身份驗證令牌和用戶ID

    一種。 使用Twitter端點進行驗證

    將身份驗證令牌哈希和用戶ID插入到Sessions表中(將來的請求將ping此表,而不是twitter)

    C。 返回確認給客戶

上面的說法很有道理,但是使用Github登錄解析示例似乎在做些微的不同。 使用Parse,對第三方的初始請求是從Parse服務器而不是客戶端發出的。

Github要求發送一個“狀態”參數,這似乎就是為什么Parse示例從服務器發送其初始請求的原因,而Digits則不需要這樣的參數。 這會使數字身份驗證的安全性降低嗎? 有沒有辦法使此過程更加安全/正確?

這是我當前解決方案的要點

在“解析”方面,我發送了一個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方面,我將HTTP請求發送到Parse服務器,並在標頭中包含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);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM