簡體   English   中英

Rails 5-命名空間路由時,敲擊JWT不起作用

[英]Rails 5 - knock for JWT not working when route namespaced

我正在使用Knock進行Rails 5 API的JWT身份驗證。

我有此路由文件:

Rails.application.routes.draw do
    namespace :api, constraints: { subdomain: 'api' }, path: '/' do
        namespace :v1 do
            post 'user_token' => 'user_token#create'
        end
    end
end

這樣,我希望能夠發出POST請求以創建新令牌,如下所示:

POST http://api.domain.com/v1/user_token

但是此請求給我以下錯誤:

NameError:未初始化的常量API :: V1 :: User

我能理解的是,Knock試圖在與控制器( user_token_controller )相同的名稱空間上訪問模型User 但是我的模型沒有命名空間:

class User < ApplicationRecord
  has_secure_password
  #...
end

我的user_token_controller.rb

module API
    module V1
        class UserTokenController < Knock::AuthTokenController
        end
    end
end

我錯了什么?

這是一個已修復但尚未發布的錯誤。

臨時解決方案是使用來自github代碼的gem:

gem'knock',github:'psantos10 / knock',分支:'master'

https://github.com/nsarno/knock/issues/120

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM