首页 > 解决方案 > 谷歌 SPA oauth + JWT + Rails

问题描述

我有 Rails 5 应用程序。至于前端,我们使用 Vue js。因此它是仅适用于授权谷歌用户的封闭应用程序。现在如何运作:

Vue 调用 Google 并验证用户身份,然后将有效负载发送到 Rails 服务器。我使用 google-oauth gem,所以我可以第一次看到令牌、到期日期、id_token 以及 refresh_token。如果我们确实有与谷歌提供的电子邮件相同的用户,我会检查我的数据库。如果是,我创建一个 JWT 令牌,我将其发送回前端,有效期为 1 天。令牌保存在 cookie 中。

每次 API 调用后端时,都会提供 jwt 令牌,如果它仍然存在于我的数据库中,我会再次检查用户。

问题在于,对于用户每天一次又一次地登录来说,这不是一个好的用户体验。我想刷新用户,但我没有在我的数据库中保存来自谷歌的任何令牌。我应该用那个吗?

我是否需要从服务器端对谷歌进行额外的调用?

有没有人在他们的项目上实施过这样的事情?登录身份验证如何与谷歌一起使用,我是否需要每次都打电话给谷歌?

我的服务器上没有 Redis,因为无法安装它,所以我不能使用 jwt 会话 gem。

标签: ruby-on-railsrubyvue.jsgoogle-authentication

解决方案


推荐阅读