我通过 facebook 在我的应用程序上对用户进行身份验证。执行此操作时,我获取访问令牌并执行验证。但是,在登录后不久,我将不得不向我的用户展示他们的朋友列表。问题是访问令牌到那时已经过期。
鉴于我正在使用 devise、omniauth 和 fbgraph gem,我该如何执行此操作?
想法:
- 获取新的访问令牌。我该怎么做呢?我是否必须修改我的omniauth_callbacks_controller?
- 我应该将朋友列表存储在会话变量中吗?
我的omniauth控制器:
def facebook
@user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)
if @user.persisted?
flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
sign_in_and_redirect @user, :event => :authentication
else
session["devise.facebook_data"] = env["omniauth.auth"]
redirect_to new_user_registration_url
end