我想集成GitHub OAuth到我的rails应用程序,我不想使用第三方宝石,如OmniAuth, warden-github等。根据GitHub认证基础知识,我得到了access_token。指南将access_token存储到会话:
...
session[:access_token] = JSON.parse(result)['access_token']
...
但如果另一个用户通过github帐户登录我的应用程序,session[:access_token]的值将被覆盖,如何处理这种情况?希望有人能给我一些好主意,提前感谢!
正如@dimakura和@Max Williams指出的那样- Rails将session
对象中的数据存储在cookie中,该cookie存储在客户端/用户的计算机上。因此,每个用户都将拥有自己的session[:access_token]
,您可以使用它来为该特定用户执行对GitHub API的调用。
关于Rails如何使用session
对象的更全面的描述,我强烈推荐Justin Weiss的文章。