在谷歌日历中保持登录



我在这里查看谷歌日历快速启动:谷歌日历JavaScript快速启动。

目前,我每次刷新页面时都必须登录。有人知道如何在会话之间获得登录持久性吗?

您需要了解的第一件事是授权和身份验证之间的区别。

身份验证正在登录。用户单击一个按钮并登录到您的应用程序。在某些情况下,使用他们从谷歌、脸书、推特或github登录。谷歌新的谷歌身份服务就是这样一个系统,它允许你使用JavaScript通过网络登录到他们的身份服务器。在大多数情况下,身份验证只允许您访问用户配置文件信息,这就是为什么您可以使用带有登录返回的访问令牌的google people api,以及为什么您可以访问userinfo端点。

授权是完全不同的。有两种类型的数据公共数据和私人用户数据。公共数据,如YouTube上的公共视频,任何人都可以访问。私人用户数据,如用户日历数据,是私人数据,您必须得到用户的同意或许可,您的应用程序才能访问它。

为了获得该权限,我们使用Oauth2。

当用户同意你访问他们的数据时,你会得到一个访问令牌,这个访问令牌是短暂的,由于客户端JavaScript隐式流的性质,你只能访问一个小时。一个小时后,你将不得不再次向用户请求访问他们数据的权限。

JavaScript Quickstart中的代码用于将数据存储在会话值或cookie中。当用户刷新页面时,您将失去访问权限,必须再次请求权限。

  • 谷歌日历认证怎么样
  • RFC rfc6749
  • 用于客户端Web应用程序的OAuth 2.0

待澄清

目前,每次刷新页面时我都必须登录。有人知道如何在会话之间获得登录持久性吗?

您使用的示例不是用于登录(身份验证(,而是用于授权,因为这不是登录,所以无法使其在会话中持久存在。

如果您使用服务器端编程语言,您可以请求刷新令牌,该令牌将使您的应用程序在用户离线时访问用户数据,通过使用刷新令牌,您可以在需要时请求新的访问令牌。这不是客户端javascript隐式流的选项。

最新更新