ruby-on-rails - 谷歌 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。
解决方案
推荐阅读
- c# - 如何参数化 xunit 类夹具?
- excel - 有没有办法将公式应用于一行中的每个单元格而不是对该行求和?
- python - discord.py 搜索并返回第一次点击的 url
- docusignapi - DocuSign API - 检索 Authorize.Net 付款交易 ID
- ansible - Ansible - 如何比较源文件和目标文件之间的两个文件并将内容从源文件附加到目标文件
- javascript - 未检测到清单,清单:行:1,列:1,语法错误。React.Js
- python - pandas.errors.EmptyDataError:读取 csv 文件时没有要从文件中解析的列
- laravel - Livewire:添加新记录后无法更新子组件
- c++ - 我怎么能等到 Win32 线程池完成工作,外部取消?
- nats.io - NATS 流在集群和 FT 模式下提供什么消息持久性保证?