2017-04-08 65 views
0

我們希望在連接到Heroku上的Parse Server後端的iOS客戶端上啓用微信登錄。通過閱讀PFFPinterestAuthenticationProvider,似乎我們需要爲WeChat編寫一個自定義身份驗證提供程序。如何使用微信OAuth登錄解析服務器

微信登錄是基於OAuth 2.0。它的工作原理如下: 1.從我們的應用程序,授權請求發送到安裝在同一電話上的微信應用程序。微信app被調用到前臺。 2.用戶批准授權請求後,代碼(而不是訪問令牌)被髮送到我們的應用程序。 3.隨着代碼和我們的應用程序ID和應用程序的祕密,我們的服務器可以調用微信API,並從微信中獲取適當的用戶ID和訪問令牌。這一步必須發生在我們的服務器上,因爲我們不能在我們的客戶端應用程序中包含應用程序祕密。

在WeChat文檔中,強烈建議我們嚴格控制訪問令牌(任何具有訪問令牌的人都可以向WeChat API發出請求,並將其計入我們API調用的使用限制)。

如果我們要遵循這種做法,我們不能將訪問令牌保存在用戶的authData字段中。將只有微信的代碼和ID保存到authData並將訪問令牌保存到只有主密鑰才能訪問的另一個類是否可以接受?這顯然要求我們爲分析服務器編寫自定義的AuthAdapter。

或者是否有更好的方法來實現此自定義身份驗證? Parse Server的自定義auth文檔非常簡單,我打算在自己爲自己工作後改進它。

回答

1

您肯定可以更新身份驗證適配器來交換訪問令牌服務器端的代碼。該邏輯與其他適配器類似,如果服務器無法處理代碼以訪問令牌交換,則無法登錄/註冊。

這裏 https://github.com/parse-community/parse-server/blob/master/src/Adapters/Auth/wechat.js#L7

如果的authData對象有代碼,您可以添加額外的邏輯來交流一下。

+0

謝謝@flovilmart!在我爲我的應用程序工作之後,我會寫點東西來改進這部分的文檔。 –

+0

非常感謝!目前的oauth適配器只是驗證訪問令牌,因爲許多SDK提供這種「免費」的訪問令牌。 – flovilmart