Ruby on rails 呈现的ActiveModel::Serializer::Null,哈希筛选器链暂停为:授权呈现或重定向

Ruby on rails 呈现的ActiveModel::Serializer::Null,哈希筛选器链暂停为:授权呈现或重定向,ruby-on-rails,reactjs,authentication,Ruby On Rails,Reactjs,Authentication,每当我尝试获取时,它都会说我没有登录,而我正在登录。我已经检查了我的序列化程序。我不确定我做错了什么。我正在尝试获取所有具有与我的localStorage.userId匹配的userId的帖子。我可以检索本地存储id,但它会限制我访问HTTP请求 import React, {Component} from 'react'; import Profile from '../components/Profile.js'; class UserProfiles extend

每当我尝试获取时,它都会说我没有登录,而我正在登录。我已经检查了我的序列化程序。我不确定我做错了什么。我正在尝试获取所有具有与我的localStorage.userId匹配的userId的帖子。我可以检索本地存储id,但它会限制我访问HTTP请求

    import React, {Component} from 'react';
    import Profile from '../components/Profile.js';

    class UserProfiles extends Component {
        state = {
        posts: [],
        user: {
          username: localStorage.username,
          token: localStorage.token,
        },
        };
      // user = this.props.user
      // userId = user.id
        componentDidMount() {
            fetch(`http://localhost:3000/users/${localStorage.userId}`)
                .then((res) => res.json())
                .then((posts) => {
                    console.log(posts);
                    this.setState({
                        posts: posts,
                    });
                });
        }


        render(){
        return (
          <div className="container">
            <div className="profile">

            </div>

          </div>
        );
            }
      }

    export default UserProfiles;

    class ApplicationController < ActionController::API
        before_action :authorized

        def encode_token(payload)
          # should store secret in env variable
          JWT.encode(payload, 'my_s3cr3t')
        end

        def auth_header
          # { Authorization: 'Bearer <token>' }
          request.headers['Authorization']
        end

        def decoded_token
          if auth_header
            token = auth_header.split(' ')[1]
            # header: { 'Authorization': 'Bearer <token>' }
            begin
              JWT.decode(token, 'my_s3cr3t', true, algorithm: 'HS256')
            rescue JWT::DecodeError
              nil
            end
          end
        end

        def current_user
          if decoded_token
            user_id = decoded_token[0]['user_id']
            @user = User.find_by(id: user_id)
          end
        end

        def logged_in?
          !!current_user
        end

        def authorized
          render json: { message: 'Please log in' }, status: :unauthorized unless logged_in?
        end
      end

    class PostsController < ApplicationController
      before_action :set_post, only: [:show, :update, :destroy]
      skip_before_action :authorized, only: [:show, :index]


      # GET /posts
      def index
        @posts = Post.all

        render json: @posts
      end

      # GET /posts/1
      def show
        render json: @post
      end

      # POST /posts
      def create
        @post = Post.new(post_params)

        if @post.save
          render json: @post, status: :created, location: @post
        else
          render json: @post.errors, status: :unprocessable_entity
        end
      end

      # PATCH/PUT /posts/1
      def update
        if @post.update(post_params)
          render json: @post
        else
          render json: @post.errors, status: :unprocessable_entity
        end
      end

      def upvote
        @post = Post.find(params[:id])
        @post.votes.create
      end

      # DELETE /posts/1
      def destroy
        @post.destroy
      end

      private
        # Use callbacks to share common setup or constraints between actions.
        def set_post
          @post = Post.find(params[:id])
        end

        # Only allow a trusted parameter "white list" through.
        def post_params
          params.require(:post).permit(:title, :content, :article_link, :user_id, 
           :location_lat, :location_long)
        end
    end
import React,{Component}来自'React';
从“../components/Profile.js”导入配置文件;
类UserProfiles扩展组件{
状态={
员额:[],
用户:{
用户名:localStorage.username,
令牌:localStorage.token,
},
};
//user=this.props.user
//userId=user.id
componentDidMount(){
取回(`http://localhost:3000/users/${localStorage.userId}`)
.然后((res)=>res.json())
。然后((帖子)=>{
控制台日志(posts);
这是我的国家({
职位:职位,
});
});
}
render(){
返回(
);
}
}
导出默认用户配置文件;
类ApplicationController
如果要获取所有帖子,请从更改url开始:
获取(
{localStorage.userId}
如果要获取所有帖子,请从更改url开始:
获取(
{localStorage.userId}