如何构建可以接受来自 rails 应用程序外部请求的设计控制器

How to build devise controller that can accept request from outside of the rails app

提问人:Tian Gao 提问时间:11/6/2023 最后编辑:Tian Gao 更新时间:11/8/2023 访问量:20

问:

这是设计路线:

devise_scope :user do
  post 'log-in/testing', to: 'sessions#create_session'
end

这是控制器:

class SessionsController < DeviseController

  def create_session
    database = permitted_params[:database]
    session_id = permitted_params[:sessionId]
    user_name = permitted_params[:userName]

    # the rest of the logic
  end
end

我用魔杖向端点发送请求,例如:

curl --location 'http://127.0.0.1:3000/log-in/testing' \
--header 'Content-Type: application/json' \
--data-raw '{
    "database":"database",
    "sessionId":"OUZS_onnmm",
    "userName":"[email protected]"
}'

但是我收到 422 错误,我在控制器的开头添加了 byebug,但它没有被触发。

看起来 devise 中的 post 控制器可以通过 rails 应用程序中的 html 页面访问,但是我们是否可以构建一个可以由外部应用程序访问的设计控制器,例如从 Angular 或 React 应用程序访问?

Ruby-on-Rails 设计

评论

0赞 dbugger 11/6/2023
medium.com/@alessandrahagarty/......

答:

0赞 Tian Gao 11/8/2023 #1

我发现 422 是由于verify_authenticity_token

skip_before_action :verify_authenticity_token,仅::create_session