2017-01-04 66 views
-5

我有一個Django項目。現在我需要編寫/遷移一些API到Go。Django + Go API

如果用戶在Django中通過身份驗證並通過請求獲取Go API中的用戶ID,如何實現條件?

像Django中現有的request.user.is_authenticated()

+0

Go是一種編程語言,而不是Web框架。它沒有任何認證用戶或請求的概念;你需要在Go中使用一個等效的框架。 –

+0

你不明白。 Django有辦法檢查用戶是否被認證。我想將這種會話數據/ cookies方式與Go API集成。 – henriquechehad

回答

2

我打算假設Django中現有的request.user.is_authenticated()依靠會話或cookie信息來確定用戶是否已通過身份驗證。如果確實存在於Cookie中,那麼您所需要做的就是在Go中實施類似的幫助程序:讀取cookie,如果cookie正確,則返回true否則返回false

但是,Cookie最有可能只包含會話標識符,而會話對象將包含有關用戶狀態的信息。會話對象由Django管理,因此不會提供給您的Go應用程序 - 或任何其他應用程序。

保護您的API的正確方法(無論它們是在Go還是其他方面實現)都是爲您的API端點實現基於令牌的身份驗證 - 在我看來。然後,您將能夠爲每個應用程序或每個用戶請求/生成令牌 - 具體取決於您是否需要基於角色的訪問 - 並使用它們訪問您的API。