【问题标题】:Devise token auth and versioning设计令牌身份验证和版本控制
【发布时间】:2016-03-22 21:04:24
【问题描述】:

我在使用 api 版本实现 mount_devise_token_auth_for 时遇到问题。
比方说:

scope module: :v1, constraints: ApiConstraints.new(version: 1) do
    mount_devise_token_auth_for 'User', at: '/auth', skip: [  ],  controllers: {
       registrations:      'v1/users/registrations',
       sessions:           'v1/users/sessions'
    }
end

如果我想添加 v2 并将身份验证安装在同一路径,如下所示:

scope module: :v2, constraints: ApiConstraints.new(version: 2, default: true) do
    mount_devise_token_auth_for 'User', at: '/auth', skip: [  ],  controllers: {
       registrations:      'v2/users/registrations',
       sessions:           'v2/users/sessions'
    }
end

失败是因为用于设计的命名路由助手已经存在这些名称。
我可以使用命名空间来处理这个问题,但我们不想要 URI 中的版本。
请指教。
谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby devise rails-api api-versioning


    【解决方案1】:

    我忘记发布我的问题的答案。我必须用

    定义v2
    scope module: :v2, as: 'v2', constraints: ApiConstraints.new(version: 2, default: true) do
        mount_devise_token_auth_for 'User', at: '/auth', skip: [  ],  controllers: {
           registrations:      'v2/users/registrations',
           sessions:           'v2/users/sessions'
        }
    end
    

    “as: v2”部分生成唯一的命名路由助手,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 2016-05-08
      • 2011-03-18
      • 2015-02-11
      • 1970-01-01
      相关资源
      最近更新 更多