gpt4 book ai didi

ruby-on-rails - 如何访问设计 token 授权注册 Controller ?

转载 作者:数据小太阳 更新时间:2023-10-29 07:07:03 28 4
gpt4 key购买 nike

我正在使用 Devise auth token gem 用于验证我的 Rails 应用程序的某些部分。但是,当我尝试使用注册路径创建新用户时,出现以下错误{"errors":["Authorized users only."]}

这是我用于测试的 rspec 代码,

it 'creates a user using email/password combo' do
post api_user_registration_path, { email: 'xxx', password: 'yyy',password_confirmation: 'yyy'}
puts last_response.body
expect(last_response.body).not_to have_content('error')
end

附加信息:模型名称是“用户”,路由看起来像,

namespace :api do
scope :v1 do
mount_devise_token_auth_for 'User', at: 'auth'
end
end

我知道该设备希望用户在访问此路径之前经过身份验证,但这是用户注册,它需要在身份验证之外。你能为此提出解决方案吗?我在这里缺少任何配置吗?

最佳答案

尝试:

  namespace :api do
namespace :v1 do
mount_devise_token_auth_for 'User', at: '/auth'
end
end

这将创建以下路由:

        new_api_v1_user_session GET    /api/v1/auth/sign_in(.:format)        devise_token_auth/sessions#new                                                                                                                                  
api_v1_user_session POST /api/v1/auth/sign_in(.:format) devise_token_auth/sessions#create
destroy_api_v1_user_session DELETE /api/v1/auth/sign_out(.:format) devise_token_auth/sessions#destroy
api_v1_user_password POST /api/v1/auth/password(.:format) devise_token_auth/passwords#create
new_api_v1_user_password GET /api/v1/auth/password/new(.:format) devise_token_auth/passwords#new
edit_api_v1_user_password GET /api/v1/auth/password/edit(.:format) devise_token_auth/passwords#edit
PATCH /api/v1/auth/password(.:format) devise_token_auth/passwords#update
PUT /api/v1/auth/password(.:format) devise_token_auth/passwords#update
cancel_api_v1_user_registration GET /api/v1/auth/cancel(.:format) devise_token_auth/registrations#cancel
api_v1_user_registration POST /api/v1/auth(.:format) devise_token_auth/registrations#create
new_api_v1_user_registration GET /api/v1/auth/sign_up(.:format) devise_token_auth/registrations#new
edit_api_v1_user_registration GET /api/v1/auth/edit(.:format) devise_token_auth/registrations#edit
PATCH /api/v1/auth(.:format) devise_token_auth/registrations#update
PUT /api/v1/auth(.:format) devise_token_auth/registrations#update
DELETE /api/v1/auth(.:format) devise_token_auth/registrations#destroy
api_v1_auth_validate_token GET /api/v1/auth/validate_token(.:format) devise_token_auth/token_validations#validate_token

同时在 app/controllers/api/v1/api_base_controller.rb 中创建一个 Controller

class Api::V1::BaseApiController < ActionController::Base

include DeviseTokenAuth::Concerns::SetUserByToken

end

同时添加到您的文件 app/controllers/application_controller.rb

  before_action :configure_permitted_parameters, if: :devise_controller?

关于ruby-on-rails - 如何访问设计 token 授权注册 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31139993/

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