登录Oauth2后如何使用访问令牌?

时间:2020-07-17 08:48:33

标签: ruby-on-rails oauth

我目前处于需要做一个单页应用程序游戏作为学校作业的情况,我只需要使用学校的Oauth身份验证服务器来实现登录,并且应该在Rails上使用ruby。我只实现了Oauth2 gem,没有其他类似devise或omniauth的gem。

这是我实施的工作流程

  1. 用户单击“ 00 School Login”按钮
  2. 检查会话中是否存在uid?进入主页是否不存在?设置以下网址参数后,重定向到学校api(api / oauth / authorize)。
  • client_id =>在学校api服务器上注册的应用的ID
  • 重定向uri =>回调地址到我的网站
  • 响应类型=>“代码”
  • state =>创建一个随机字符串并将“状态”存储在cookie中
  1. 出现并同意用户许可协议窗口后,重定向到我的回调
  2. 在我的回叫中
  • 状态值检查:Cookie中存储的状态值与url参数中的状态值是否相同。
  • 获取令牌:再次请求学校api服务器以获取访问令牌
  • 使用令牌请求用户信息(信息中包含uid)
  • 如果我的数据库中有一个用户,请在会话中设置uid。否则,将用户信息保存在数据库中,并在会话中设置uid。

============================================

但这是问题。

Q1。我是否需要将此令牌存储在数据库中或会话中? 令牌仅在我在登录步骤中从school api获取用户信息时使用。

  1. 对于第一次登录,在db中注册后创建一个会话
  2. 如果用户已经注册,则仅创建会话

使用我的SPA时,根本不需要请求学校api。但是,我只需要在服务器端api上删除信息。目前,我可以使用会话中存储的uid检查权限,并且我认为我不需要学校api令牌。我理解正确吗?

第二季度。在Cookie中保存“状态”可以吗?

谢谢。

0 个答案:

没有答案