Rails和Omniauth -我应该从身份验证哈希中保存多少数据



我目前正在使用rails和omniauth gem将我的应用程序与facebook, twitter和linkedin集成。当我处理一个全功能回调时,我只是从身份验证散列中保存uid和提供者。大多数在线教程只保存这些字段,但你如何能够访问用户的详细信息,从facebook/twitter/linkedin以后?除了uid/provider之外,身份验证哈希中还应该保存哪些字段?

我读过的一些指南:

Github omniauth with design

Railscast omniauth and design

在Railscast中,在创建全功能OmniauthCallbacksController之前有一个示例,其中行:

raise request.env["omniauth.auth"].to_yaml

在屏幕上输出请求。正如您所看到的,在这个散列omniauth.auth中,有很多关于经过身份验证的用户的有用信息。每次身份验证是OK时都会接收到它。在这种情况下,除了uidprovider之外,不需要在数据库中存储任何其他内容。

哈希表项可以这样访问:

(request.env["omniauth.auth"]).info.nickname

(request.env["omniauth.auth"]).uid

您可以看到逻辑:yaml输出的每个部分(比如' info')都包含特定的属性。

最终从facebook保存访问令牌,如果我需要信息,则轮询api,然后每2小时自动刷新令牌。

相关内容

  • 没有找到相关文章

最新更新