Tôi có Ứng dụng Rails 4.1 đang chạy với Devise để xác thực.Rails Devise và devise_token_auth. Không hoạt động cùng với
Để truy cập qua ứng dụng dành cho thiết bị di động, tôi muốn triển khai xác thực mã thông báo bằng đá quý devise_token_auth được đề xuất. Tôi không sử dụng Omniauth
Không thể thay đổi chức năng của ứng dụng hiện có.
Điều tôi đã làm:
Đã cài đặt devise_token_auth qua gemfile.
sử dụng máy phát điện: đường ray g devise_token_auth: cài đặt tài khoản auth
Thay đổi sự di cư để thêm các trường bắt buộc. Di chuyển không thành công do thiếu Omniauth. Vì vậy, tôi cũng đã cài đặt nó.
routes.rb Thay đổi
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
thêm:
namespace :api do
scope :v1 do
mount_devise_token_auth_for 'User', at: 'auth', skip: [:omniauth_callbacks]
end
cuối
Trong tài khoản Mẫu i có:
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable, :timeoutable, :lockable
include DeviseTokenAuth::Concerns::User
Bây giờ khi tôi cố gắng để sign_up mới người dùng nó mang lại cho tôi va lỗi lidation:
Uid không được để trống
Có ai có cùng sự cố và giải quyết không?
Điều tôi thấy lạ là nó cần phải cài đặt Omniauth.
Cập nhật:
tôi ghi đè lên bộ điều khiển đăng ký lập mưu tạo ra hành động:
build_resource(sign_up_params)
resource.uid = resource.email
resource.provider = ''
Bây giờ khi tôi sign_in tôi nhận được:
{ "lỗi": [ "chỉ những người dùng ủy quyền."] }
trong Trình duyệt.
bạn đang sử dụng phiên bản đá quý nào? Tôi đang cố gắng làm như vậy nhưng tôi nhận được một lỗi. –
hiện tại: devise_token_auth 0.1.32.beta2 – yaster
Bạn đã nói "Đã thay đổi di chuyển để thêm các trường bắt buộc". Đây là những gì? Có hướng dẫn nào bạn theo dõi không? Tôi đang cố gắng thêm devise_token_auth vào triển khai Devise hiện có, tùy chỉnh của mình. –