Aki*_*lov 10 authentication oauth-2.0 single-page-application google-oauth
我们正在开发SPA - 完整的客户端基础javascript应用程序,需要对用户进行身份验证才能访问内部.
正如我从搜索中发现的那样,我们可以将我们的身份验证机制外包并使用Google帐户.我从这个网站上了解到 https://developers.google.com/accounts/docs/OAuth2Login - 如何处理Google API和身份验证机制.
简而言之,我们需要:
这个描述得很好,我理解它并有一些JS代码来实现它.
我不明白.
我有一个应用程序与它的私人数据.我想使用用户的电子邮件作为登录或用户ID(无论如何调用它)来访问应用程序的内部,例如用户创建的任务,用户的配置文件等.因此,在我的SPA中显示用户创建的任务我需要用户的电子邮件查询数据库.
我想象下一个场景:
Login with Google按钮Logout我们清除所有访问数据我应该在哪里坚持这些数据?
如果Forms Authentication我理解我们将登录/密码传递给服务器,如果它们与数据库匹配,我们创建Forms Ticket并将其存储在cookie中.
谷歌的身份验证是否有类似的案例?如果我将用户的电子邮件存储在cookie中,我认为出于安全原因这不是很好.如果我要保存令牌 - 我不确定为什么需要它以及如何在我的SPA中使用它,我在身份验证后没有使用任何Google API.
您是否有任何示例案例我们如何在类似案例中构建我们的流程?
谢谢.
小智 6
如果您只需要用户的电子邮件地址,那么最好使用OpenID而不是OAuth.OAuth提供对用户帐户和服务的访问权限,范围限定为特定资源或资源集.OpendID专为登录第三方服务而设计.然后,您可以从OpenID登录中提取用户的ID和电子邮件地址.注意:将始终发送ID,但在身份验证期间必须明确请求电子邮件地址.
Google还支持混合OpenID + OAuth方案,如果您需要进行身份验证,则可以在OpenID登录之上搭载OAuth请求.查看身份验证文档,了解两种协议的工作方式以及哪种方案更适合您的方案.
一旦您返回了电子邮件地址,您可能不应该将其保留在cookie中.通常建议的处理方法是将其添加为会话参数.这样只有会话cookie存储在客户端上,服务器可以使用它找到它需要的值.这个答案可以很好地解释这些差异,以及何时使用会话和cookie.
| 归档时间: |
|
| 查看次数: |
4075 次 |
| 最近记录: |