angularjs - 在 AngularJS 中使用 Google Drive API 进行身份验证
问题描述
我完全用 go-lang 创建了这个网络应用程序,它使用 Google Drive API 来验证用户。一旦用户通过身份验证,它将令牌保存在一个<user-email>_token.json
文件中,这样应用程序就可以在没有用户参与的情况下运行 24 小时。它工作正常。但现在我想将前端与(Go-Lang)后端分开并将其转换为 AngularJS。
所以我在身份验证方面遇到了这个问题。因为我应该将身份验证保留在服务器端。但是 Angular 怎么知道用户是否通过了身份验证?因为我不能使用会话。
我应该为此使用 JWT 吗?如果是,那我该怎么做?
解决方案
您的令牌不必在服务器端。
为什么?因为如果您有许多客户端连接到您的服务器,这意味着所有这些客户端都共享相同的令牌,因此可以访问链接到该令牌的 Google Drive。它没有任何意义。
令牌必须在客户端。您应该将令牌保存为 cookie,也许通过使用JWT,我让您阅读 JWT 的文档以了解为什么在您的情况下使用它会很有趣。
然后在你的 Angular 上,你必须说类似“嘿,这个客户端有一个名为“my-google-drive-token”的 cookie,让我们检查一下这是否是一个好的......嗯,好吧似乎很好,我显示 Google Drive 内容”。
考虑使用有关安全性的良好做法(在 cookie 中使用加密令牌,确保正面和背面之间的连接安全,保持 API 密钥安全......)。
您的后端只是前端和 Google Drive API 之间的网关。
另外,检查服务器的有用性。我认为在您的情况下,连接到 Google API 的简单前端就足够了。
推荐阅读
- dart - How to return an immutable List in Dart?
- kdb - 如何有效地将一个 KDB 函数的输出转换为三个表列?
- html - Postgres:在 html blob 中搜索可见文本
- python - Flask Restplus 文件上传问题
- javascript - React-final-form-array 如何根据新状态重新渲染表单
- google-cloud-firestore - Cloud Functions:如何动态更改 Cloud Firestore 触发器
- ios - 当从弹出窗口中选择特定操作时,将 segue 添加到另一个视图控制器
- java - 根据字符串 ID 求和列值并将结果设置为 TextView
- azure - Connecting AKS with application gateway giving timeout error on accessing the applications
- arduino - How to stop multiple RFID reads?