我完全用 go-lang 创建了这个网络应用程序,它使用 Google Drive API 对用户进行身份验证。一旦用户通过身份验证,它将 token 保存在 <user-email>_token.json
中文件,以便该应用程序可以在没有用户参与的情况下运行 24 小时。它工作正常。但现在我想将前端与 (Go-Lang) 后端分离并将其转换为 AngularJS。
所以我在身份验证方面遇到了这个问题。因为我应该将身份验证保留在服务器端。但是 Angular 怎么知道用户是否通过了身份验证呢?因为我不能使用 session 。
我需要为此使用 JWT 吗?如果是,那我应该怎么做?
最佳答案
您的 token 不必位于服务器端。
为什么?因为如果您有许多客户端连接到您的服务器,这意味着所有这些客户端都共享同一个 token ,因此可以访问链接到该 token 的 Google 云端硬盘。这没有意义。
token 必须在客户端。您应该将 token 保存为 cookie,也许可以使用 JWT ,我让您阅读 JWT 的文档,了解为什么在您的情况下使用它会很有趣。
然后在你的 Angular 上,你必须说类似“嘿,这个客户有一个名为“my-google-drive-token”的 cookie,让我们检查一下它是否是一个好东西......嗯,看起来不错很好,我显示了 Google Drive 内容”。
考虑使用有关安全性的良好做法(在您的 cookie 中使用加密 token ,使前端和后端之间的连接安全,keep your API key safe ...)。
您的后端只是您的前端和 Google Drive API 之间的网关。
此外,请检查您的服务器的实用性。我认为在您的情况下,连接到 Google API 的简单前端就足够了。
关于angularjs - 在 AngularJS 中使用 Google Drive API 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54443985/