使用devise_token_auth进行表单认证

4
我正在尝试允许使用令牌在移动设备上进行身份验证,同时仍然使用Web应用程序的Web表单。我决定使用devise_token_auth。每当我尝试启动应用程序时,会出现错误,因为会话路径已经定义。

错误

ArgumentError: Invalid route name, already in use: 'new_provider_session' 

config/routes.rb

mount_devise_token_auth_for 'Provider', at: 'api/v1/auth'
  devise_for :providers, controllers: {} do
    get 'providers/sign_in', to: 'web/sessions#new'
    delete 'providers/sign_out', to: 'web/sessions#destroy'
  end
  root to: 'web/welcome#welcome'

  devise_for :admins, controllers: {} do
    get 'admins/sign_in', to: 'web/sessions#new'
    delete 'admins/sign_out', to: 'web/sessions#destroy'
  end
1个回答

3

尝试这个:

使用devise_token_auth生成器生成提供者资源。

$ rails g devise_token_auth:install Provider auth

然后更改config/routes.rb将这些路由放置在API版本命名空间中。

namespace :api do
  namespace :v1 do
    mount_devise_token_auth_for 'Provider', at: 'auth'
  end
end

检查路由

$ rake routes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接