2016-07-25 49 views
2

我不確定我遇到過這個問題,所以也許你可以幫助我。 我爲Android應用程序構建了兩步驗證。兩步驗證 - 確保用戶仍在進一步的會話中驗證

  1. 用戶經由發送他從該應用服務器的電話號碼的https
  2. 服務器經由SMS(基於
    Twilio/PHP)
  3. 用戶接收該代碼,並可以驗證發送認證碼回用戶自己在 服務器

在這一點上我可以肯定的是用戶在密碼被髮送智能手機的認證所有者。

如果用戶現在重新啓動他的手機和他的應用程序後,如何確保該用戶仍然是相同的已驗證用戶? 我是否必須每次都根據認證碼向服務器發送某種憑據?這是一個安全和正確的方法來做到這一點?

謝謝,最好的問候!

Dopser被存儲同時顯示電話以及服務器數據庫上

+0

如果其他用戶拿到手機,則無法通過短信區分。 – Joshua

+0

發送每個請求的電話號碼,並在服務器上匹配,如果它是相同的,那麼用戶認證,如果沒有然後再根據需要要求驗證.. –

回答

0

可以生成令牌量(類似於一個Cookie)。如果您想減少跟蹤其他號碼的麻煩,令牌號碼也可以是驗證碼。

您可以將使用sharedpreferences或SQLite數據庫設備上此令牌等

Storage options on Android

上,您可以檢查,如果這兩個標記匹配每一個的onCreate()實例。

這樣你就可以解決你的問題。 您可以對所有後續活動執行相同的操作。

+0

完美,謝謝! :) 因此,我的下一步將是一個令牌系統,它在客戶端和服務器端具有同步令牌,並在認證的intervall中自行更改。 – Dopser

+0

我使用Google Firebase從應用程序發送/更改應用程序。在幾秒鐘內,更改將反映在應用程序中。 因此,您可以創建一個廣播接收器,用於在密碼發生更改或從服務器刪除令牌時將用戶註銷。 也在Google Firebase中,心跳非常低,並在用戶脫機時堆疊請求。非常有幫助,我告訴你.. **最重要的是,不要忘記標記答案是正確的。我在票數達到50點,所以我可以發表評論:P ** –

+0

謝謝你走了:D – Dopser

0

用戶應該在每個請求上發送訪問令牌。

您可能需要考慮OAuth流程,因爲您的流可映射到OAuth令牌認證。請看這裏http://oauth.net/2/

你需要及時考慮令牌/代碼的有效性。

希望這會有所幫助。

+0

嗨,謝謝!我對OAuth並不是很熟悉,但在我看來,它似乎是確保服務之間通過身份驗證而不使用用戶密碼本身的正確方法。聽起來很不錯! – Dopser