2012-04-08 7 views
0

Ich authentifiziere einen Benutzer auf meiner App über Facebook. Währenddessen erhalte ich das Zugriffstoken und führe meine Validierung durch. Aber bald nach der Anmeldung muss ich meinem Benutzer eine Liste mit Freunden präsentieren. Problem ist, dass das Zugriffstoken bis dahin abgelaufen ist.Ich habe keinen Offline-Zugriff auf fb-Benutzer - sollte ich Freundesliste in Sitzung speichern? RoR, Devise, Omniauth & FBGraph

Da ich Devise, Omniauth und FBGHM Edelsteine ​​verwende, wie könnte ich das durchführen?

Gedanken:

  • einen neuen Zugriffstoken erhalten. Wie mache ich das? Müsste ich meinen omniauth_callbacks_controller ändern?
  • Soll ich die Freundesliste in einer Sitzungsvariablen speichern?

Mein omniauth Controller:

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 
+0

Zugriffstoken für 2 Stunden dauern sollte oder so. Sobald Sie einen bekommen, nehmen Sie es über das Linter-Tool und debuggen Sie es. Teilen Sie mit uns, wie lange es dauert. – DMCS

Antwort