給app做的api介面如何保證使用者的合法性?

來源:互聯網
上載者:User
我在google上面搜尋了一些針對app的使用者認證方案,也對比過傳統PC時代的cookie認證,覺得都不太合理,我想到一個方案,不知道是否合理?

需求大概是這樣的,使用者通過登入第三方,走oauth介面來登入我們的app。

大概的流程如下:

  1. 使用者先登入第三方,然後用戶端拿到使用者的資料,用https返回傳給服務端。其中,傳遞的資料如下:
{    “user_id”:”123123123” ,    “access_token”:”accesstokenstrng”,    “platform”:”qq”,    “platform_name”:”xxx”,}

2、服務端鑒權成功後,拿到使用者更進一步的資料,主動幫使用者建立一個使用者。
3、服務端接著把user_id、登入狀態相關資訊、動態產生的secret加密串,儲存到session之類的地方。
4、服務端把session_id、secret返回給用戶端,用戶端把這個secret存到記憶體裡面。
5、至此,建立使用者成功,結束https串連。

6、後續所有涉及到後端增刪改的請求,都走http協議。在發送資料時,用戶端先用secret對傳輸的資料做簽名,並把簽名signature、session_id一起帶過來。
7、服務端根據session_id找到使用者的資料,然後同樣用secret對資料進行簽名。如果兩者一樣,就證明資料是合法的。然後,就可以往下走常規的商務邏輯了。

這裡面又涉及到兩個問題:
1、用戶端和服務端初始的https是否必要?其實我完全可以把secret內建到app裡面。
2、我這種用secret對資料做簽名的做法,比起自己搞個公開金鑰私密金鑰走https,好像沒啥區別?

可能重複的問題:用PHP做伺服器介面用戶端用http協議POST訪問安全性一般怎麼做

回複內容:

我在google上面搜尋了一些針對app的使用者認證方案,也對比過傳統PC時代的cookie認證,覺得都不太合理,我想到一個方案,不知道是否合理?

需求大概是這樣的,使用者通過登入第三方,走oauth介面來登入我們的app。

大概的流程如下:

  1. 使用者先登入第三方,然後用戶端拿到使用者的資料,用https返回傳給服務端。其中,傳遞的資料如下:
{    “user_id”:”123123123” ,    “access_token”:”accesstokenstrng”,    “platform”:”qq”,    “platform_name”:”xxx”,}

2、服務端鑒權成功後,拿到使用者更進一步的資料,主動幫使用者建立一個使用者。
3、服務端接著把user_id、登入狀態相關資訊、動態產生的secret加密串,儲存到session之類的地方。
4、服務端把session_id、secret返回給用戶端,用戶端把這個secret存到記憶體裡面。
5、至此,建立使用者成功,結束https串連。

6、後續所有涉及到後端增刪改的請求,都走http協議。在發送資料時,用戶端先用secret對傳輸的資料做簽名,並把簽名signature、session_id一起帶過來。
7、服務端根據session_id找到使用者的資料,然後同樣用secret對資料進行簽名。如果兩者一樣,就證明資料是合法的。然後,就可以往下走常規的商務邏輯了。

這裡面又涉及到兩個問題:
1、用戶端和服務端初始的https是否必要?其實我完全可以把secret內建到app裡面。
2、我這種用secret對資料做簽名的做法,比起自己搞個公開金鑰私密金鑰走https,好像沒啥區別?

可能重複的問題:用PHP做伺服器介面用戶端用http協議POST訪問安全性一般怎麼做

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.