gpt4 book ai didi

ruby-on-rails - Rails/Devise - 通过 json 请求创建新用户

转载 作者:行者123 更新时间:2023-12-01 18:33:08 25 4
gpt4 key购买 nike

我想通过 JSON 进行新用户注册,但收到无效真实性 token 错误。

我不想对所有 Controller 进行伪造检查。关于如何重写注册 Controller 来执行此操作有什么建议吗?

这是我的代码:

class Api::MobileRegistrationsController  < Devise::RegistrationsController 
skip_before_filter :verify_authenticity_token
respond_to :json
def create
super
end
end

路线:

Whitney::Application.routes.draw do
resources :apps
devise_for :users
namespace :api do
resources :tokens, :only => [:create, :destroy]
resources :MobileRegistrations, :only => [:create]
end

我收到错误:

Routing Error
uninitialized constant Api::MobileRegistrationsController

最佳答案

我不能以这种方式鼓励您,因为您的应用很容易受到 CSRF 攻击。

了解 CSRF 的好资源:Understanding the Rails Authenticity Token

您应该在 POST 请求中包含 authenticity_token。这在 SO 的一些问题中进​​行了讨论,例如(阅读所有答案):rails - InvalidAuthenticityToken for json/xml requests

想法:

  1. 使用 <%= form_authenticity_token %> 检索 token

  2. 使用 token 将 authenticity_token POST 参数添加到您的请求中。

如果您通过 URI 传递参数,请不要忘记对 token 值进行编码:

url += "&authenticity_token=" + encodeURIComponent( <%= form_authenticity_token %> );

关于ruby-on-rails - Rails/Devise - 通过 json 请求创建新用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9044141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com