如何跨机器坚持谷歌api身份验证?

时间:2017-10-24 07:25:22

标签: javascript ruby-on-rails google-api google-calendar-api

我正在使用rails后端和ember js前端开发一个Web应用程序。 我想在我的应用中集成谷歌日历。由于谷歌没有为谷歌API提供任何ember.js SDK,因此我使用Javascript SDK。

现在,我希望用户在一台计算机上为我的应用授权谷歌日历。当他从我在机器1上的应用程序注销并登录到机器2时,我希望谷歌日历仍然被授权。

此外,当oauth令牌在某个时间后自动过期时,我想再次重新生成它(通过使用刷新令牌?)而不是要求用户再次授权。当用户自己撤销权限时,我不会这样做。

有人可以就如何做到这一点给我一些指导吗?

1 个答案:

答案 0 :(得分:0)

不要认为可以登录一台计算机并自动登录另一台计算机。您可能希望使用service accounts for Calendar API代替:

  

在企业应用程序中,您可能希望以编程方式访问   用户数据,无需任何手动授权。在谷歌   应用程序域,域管理员可以授予第三方   应用程序在域范围内访问其用户'数据 - 这是参考   作为域范围的授权。授权这个   方式,域管理员可以使用OAuth 2.0的服务帐户。

Refreshing an access token (offline access)

详细介绍了实施刷新令牌的情况
HTTP/REST implementation:

POST /oauth2/v4/token HTTP/1.1
Host: www.googleapis.com
Content-Type: application/x-www-form-urlencoded

client_id=<your_client_id>&
client_secret=<your_client_secret>&
refresh_token=<refresh_token>&
grant_type=refresh_token