2017-06-06 31 views
1

我在Golang中構建一個Web應用程序,目前我正在努力使用身份驗證/授權機制。Oauth2 Golang - 擁有自己的數據庫和用戶

我想將這個應用程序部署到不同的平臺(瀏覽器,機器人等)。爲了達到這個目的,我選擇使用oauth 2.0,即這個lib:https://github.com/golang/oauth2

我面臨的問題是如何實現這與我自己的數據庫和用戶。該lib有一個jwt軟件包(https://github.com/golang/oauth2/tree/master/jwt),並且還有一個可以用於雙腳Oauth 2.0的軟件包clientcredentials(https://github.com/golang/oauth2/blob/master/clientcredentials/clientcredentials.go),但我不知道如何實現此目的,並且找不到任何顯示它的示例。我應該使用哪個包?當用戶使用憑證http://example.domain/login發送POST時,應該設置令牌。

有人可以提供一些提示/給我看一個簡單的例子嗎?

+0

從一個簡單的網絡搜索,似乎有各種圍棋的OAuth2服務器庫可供選擇。仔細閱讀他們的一些README文件,選擇一個看起來可以爲你工作的文件,然後嘗試使用它。如果遇到麻煩,請發佈具體問題。 –

回答

0

您是否探索過解決方案,如ory/hydra,它將處理與OAuth2/OpenID相關的所有事情,並讓您處理用戶身份驗證?

實施您自己的OAuth2提供程序是危險區域。它只需要一個誤讀RFC和BOOM!安全漏洞。將責任委託給建立的安全專家或持久項目,而不是本土補救措施通常會更好。

當然,這並不是說每個人都需要跳到炒作火車並使用這個很酷的新軟件。事實上,我會敦促相反的事情:如果您是一位出色的安全分析師,並且很樂意編寫OAuth2/OpenID Connect實施方案,那麼請繼續!但是我們的普通人在我們三十歲之前不想讓我們的頭髮變灰,那麼我們就會利用現有的技術來獲益。

So Trump must have been busy working with webRTC.

+0

這個想法並不是實現一個OAuth2提供者。這個想法是使用該lib中的jwt包來實現對我自己的數據庫和用戶的認證和授權。由於我沒有找到這個包的任何例子,我最終使用這個lib:https://github.com/dgrijalva/jwt-go。 – LuisFerrolho

相關問題