我目前正在使用rails 和omniauth gem 将我的应用程序与facebook、twitter 和linkedin 集成。当我处理omniauth 回调时,我只需从身份验证哈希中保存uid 和provider。大多数在线教程也只保存这些字段,但是您以后如何从 facebook/twitter/linkedin 访问用户详细信息?除了 uid/provider 之外,还应保存身份验证哈希中的哪些其他字段?
我读过的一些指南:
我目前正在使用rails 和omniauth gem 将我的应用程序与facebook、twitter 和linkedin 集成。当我处理omniauth 回调时,我只需从身份验证哈希中保存uid 和provider。大多数在线教程也只保存这些字段,但是您以后如何从 facebook/twitter/linkedin 访问用户详细信息?除了 uid/provider 之外,还应保存身份验证哈希中的哪些其他字段?
我读过的一些指南:
在 Railscast 中,在创建全功能 OmniauthCallbacksController 之前有一个示例,其中行:
raise request.env["omniauth.auth"].to_yaml
在屏幕上输出请求。如您所见,在这个散列中omniauth.auth
,有很多关于经过身份验证的用户的有用信息。每次验证成功时都会收到它。uid
在这种情况下,除了和之外,不需要在数据库中存储任何其他内容provider
。
可以像这样访问哈希的条目:
(request.env["omniauth.auth"]).info.nickname
或者
(request.env["omniauth.auth"]).uid
您会看到逻辑:yaml 输出的每个部分(比如说“信息”)都包含特定的属性。
最后从 facebook 保存访问令牌,如果我需要信息,轮询 api,然后每 2 小时自动刷新一次令牌。