gpt4 book ai didi

ruby-on-rails-3 - 让 OmniAuth、Devise 和 Koala 协同工作

转载 作者:行者123 更新时间:2023-12-04 14:18:22 26 4
gpt4 key购买 nike

我有一个应用程序,我在其中使用 devise 和 omniauth 实现身份验证。我已经弄清楚了登录/注销等问题,我想知道的是,与用户图 api 端点的连接初始化并准备在我的应用程序中使用的最有效方法是什么。

例如:如果在我想做的个人资料页面上,

profile_image = current_user.fbgraph.get_picture("me")

我将如何用最少的 API 调用来实现这一点(我将在整个应用程序中使用类似的调用)

最佳答案

您可以使用类似 Koala 的方法来完成此操作。 .当您对用户进行身份验证时,您可以获取访问 token 。假设您已关注 Devise/Omniauth tutorial ,你可以这样做:

  def self.find_for_facebook_oauth(response, signed_in_resource=nil)
data = response['extra']['user_hash']
access_token = response['credentials']['token']
user = User.find_by_email(data["email"])
# only log in confirmed users
# that way users can't spoof accounts
if user and user.confirmed?
user.update_attribute('fb_access_token', access_token)
user
end
end

获得访问 token 后,您可以执行以下操作:
@graph = Koala::Facebook::API.new(@user.fb_access_token)
profile_image = @graph.get_picture("me")

在我的应用程序中,当来自 Facebook 的回调到来时,我会检查用户是否已登录。如果是,我假设请求是链接帐户。如果不是,我认为这是一个登录请求。

关于ruby-on-rails-3 - 让 OmniAuth、Devise 和 Koala 协同工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6533042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com