Mam aplikację Rails 4.1 działającą z Devise do uwierzytelniania.Rails Devise and devise_token_auth. Nie działa obok
Aby uzyskać dostęp za pośrednictwem aplikacji mobilnych, chciałbym zaimplementować token auth za pomocą zalecanego gem devise_token_auth. Nie używam Omniauth
Funkcjonalności istniejącej aplikacji nie należy zmieniać.
co zrobiłem:
devise_token_auth zainstalowana poprzez gemfile.
używany generator: Szyny g devise_token_auth: zainstalować uwierzytelniania użytkownika
zmienił migracji, aby dodać wymagane pola. Migracja nie powiodła się z powodu braku Omniauth. Więc też go zainstalowałem.
Zmieniono routes.rb
devise_for :users, :skip => [:sessions, :registrations, :omniauth_callbacks]
as :user do
get 'register' => 'users/registrations#new', :as => :new_user_registration
post 'register' => 'users/registrations#create', :as => :user_registration
get 'sign_in' => 'devise/sessions#new', :as => :new_user_session
post 'sign_in' => 'devise/sessions#create', :as => :user_session
delete '/' => 'users/sessions#destroy', :as => :destroy_user_session
end
dodania:
namespace :api do
scope :v1 do
mount_devise_token_auth_for 'User', at: 'auth', skip: [:omniauth_callbacks]
end
koniec
W modelu użytkownika mam:
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable, :timeoutable, :lockable
include DeviseTokenAuth::Concerns::User
Teraz, gdy próbuję sign_up nowa użytkownik daje mi va Błąd lidation:
Uid nie może być puste
Czy ktoś miał ten sam problem i rozwiązać go?
To, co dziwne, to to, że musi być zainstalowany Omniauth.
Aktualizacja:
ja zastąpić kontroler rejestracja Devise tworzyć działania:
build_resource(sign_up_params)
resource.uid = resource.email
resource.provider = ''
Teraz kiedy sign_in uzyskać:
{ "błędów": [ "tylko użytkownicy autoryzowany."] }
w przeglądarce.
której wersji klejnotu używasz? Próbuję zrobić to samo, ale pojawia się błąd. –
obecnie: devise_token_auth 0.1.32.beta2 – yaster
Powiedziałeś "Zmieniono migrację, aby dodać wymagane pola." Co to było? Czy byłeś przewodnikiem, którego śledziłeś? Próbuję dodać devise_token_auth do mojej istniejącej, spersonalizowanej implementacji Devise. –