如何解决Rails 401 登录后未经授权 - [active_model_serializers] 渲染 ActiveModel::Serializer::Null 与 Hash
我有一个运行在 Ruby 2.6.6 上的 Rails 5.2.4 应用程序。我登录后,设置了以下cookie:
_appname_session: value
当我拨打电话时,我正在发送:
set-cookie: _appname_session=NXVaR1FtU2lnbWdadasdasd...dasdasd32edas; path=/; HttpOnly
当调用自定义 API url:/api/campaigns
时,我收到 401 Unauthorized 错误,在 production.log 中我有:
Processing by CampaignsController#index as */*
[active_model_serializers] Rendered ActiveModel::Serializer::Null with Hash (0.2ms)
[523ffb4f-2a4e-4edc-ae2c-d2aa4c907c0d] Filter chain halted as :authenticate_user! rendered or redirected
[523ffb4f-2a4e-4edc-ae2c-d2aa4c907c0d] Completed 401 Unauthorized in 3ms (Views: 1.8ms | ActiveRecord: 0.0ms)
CampaignsController 包含:
class CampaignsController < ApiController
expose :campaign,scope: -> { user_signed_in? ? current_user.campaigns : Campaign }
skip_before_action :authenticate_user!,except: :index
before_action :authorize_resource
...
此外,config/application.rb
包含:
config.api_only = false
我还添加了(遵循一些谷歌建议):
config.middleware.use ActionDispatch::Cookies
config.middleware.use ActionDispatch::Session::CookieStore
很遗憾,我无法在登录后检索受保护的数据。有什么问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。