我们正在开发一个 SPA - 完整的客户端 JavaScript 应用程序,需要对我们的用户进行身份验证才能访问内部。
正如我从搜索中发现的那样,我们可以外包我们的身份验证机制并为此使用Google 帐户。我从这个站点 https://developers.google.com/accounts/docs/OAuth2Login - How to deal with Google API and mechanism for authentication了解到。
简而言之,我们需要:
- 向带有参数的 google url 发送请求,要求用户允许 SPA 使用他们的个人数据
- 如果成功,我们会从 Google 获得一个令牌
- 我们可以使用这个令牌来访问我们被询问的 API 并使用它。
这描述得很好,我理解它并且有一些 JS 代码来实现它。
什么我不明白。
我有一个带有私有数据的应用程序。我想使用用户的电子邮件作为登录名或用户 ID(不管如何调用它)来访问应用程序的内部,例如用户创建的任务、用户的个人资料等。因此,在我的 SPA 中显示用户创建的任务我需要使用用户的电子邮件查询数据库。
我想象下一个场景:
- 用户点击
Login with Google
按钮 - 我们获得了一个令牌 - 这意味着用户已成功通过身份验证
- 我们坚持用户和他的电子邮件与 SPA 合作
- 当用户点击
Logout
我们清除所有访问数据
我应该在哪里保存这些数据?
如果Forms Authentication
我知道我们将登录名/密码传递给服务器,并且如果它们与我们创建的数据库匹配Forms Ticket
并将其存储在 cookie 中。
Google 的 auth 有没有类似的案例?如果我将用户的电子邮件存储在 cookie 中,我认为出于安全原因这不是很好。如果我要保存一个令牌 - 我不确定我为什么需要它以及如何在我的 SPA 中使用它,我在身份验证后没有使用任何 Google API。
您是否有任何示例案例我们如何在类似案例中构建我们的流程?
谢谢你。