angularjs - 在 AngularJS 中使用 Google Drive API 进行身份验证

标签 angularjs authentication go google-drive-api

我完全用 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/

相关文章:

javascript - 使用外部脚本结果填充本地 div

javascript - Angular 函数检查时间是否在给定时间的 45 分钟内以及现在是否晚于时间

angular ngrx-store-localstorage 在重新加载后不存储数据

angularjs - Protractor Jasmine适配能否正确等待protractor.promise.defer().promise?

javascript - 跳出ajax循环

php - 使用 PHP、MySQL 和 MD5 创建登录

ajax - 如果我使用基于 token 的身份验证,我应该如何加载图像

unit-testing - httptest.ResponseRecorder 没有字段或方法结果

golang : build command-line-arguments: cannot find module for path x

go - DefaultHandler 是结构的 (*DefaultHandler)(nil) 是什么意思?