2016-03-31 3 views
1

Ich benutze devise_token_auth (https://github.com/lynndylanhurley/devise_token_auth) für die Authentifizierung von mobilen Geräten und ich brauche auch für meine Web-App zu entwickeln.Ich benutze die Bibliothek devise_token_auth für webapp und api

Das Problem ist, dass ein Benutzer durch devise_token_auth anmelden können, aber wenn sich der Benutzer in und versucht, bestimmte Funktion in einem Controller zu nennen, die „before_action :authenticate_user!“ enthält, bekomme ich eine Fehlermeldung, dass Authorized Users Only.

Ich frage mich, ob es eine Möglichkeit gibt, devise und devise_token_auth zusammen zu verwenden.

Code:

class RestrictedController < ApplicationController 
    before_action :authenticate_user! 

    def stuff 
    head :ok 
    end 
end 

Antwort

0

Zunächst sollten Sie wissen, dass devise nicht mehr Benutzersitzung zu verwalten. Deshalb wird empfohlen, devise_token_auth zu verwenden.

Wenn Sie auf einem Controller before_action :authenticate_user! angeben, müssen alle Aktionen (wie RestrictedController#stuff) den Benutzer anmelden. devise_token_auth erwarten, in der Abfrage Header 4 Params unten aufgeführten erhalten.

Hier ist, was Sie tun müssen:

  1. Anmelden um die Strecke von devise_token_auth bereitgestellt wird.
  2. Wenn die Anmeldung erfolgreich ist, erhalten Sie in der Kopfzeile eine access-token, eine client, eine token-type und eine uid.
  3. Jedes Mal, wenn Sie möchten, dass eine Controller-Aktion ausgeführt werden, wo Nutzer angemeldet werden muss, angeben, in der Abfrage Header, die access-token, die client, die token-type und die uid
Verwandte Themen