inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

리액트 기본 기능으로 회원가입 폼 만들기

axios 401에러가 났습니다

1499

윤해빈

작성한 질문수 23

1

401 에러가 나서 제가 구글링을 나름 해보니, 토큰인증의 문제가 원인이라고 하는데 아직 토큰발급을 적용하지 않았는데 이런 에러가 나는 이유는 무엇일까요..

Signup.js 부분은 선생님의 코드와 완전히 같습니다.

import React, { useState } from "react";
import Axios from "axios";

export default function Signup() {
    const [inputs, setInputs] = useState({});
    
    const onSubmit = e => {
        e.preventDefault();

        Axios.post("http://localhost:8000/accounts/signup/", inputs)
            .then(response => {
                console.log("response: ",response);
            })
            .catch(error => {
                console.log("error: ",error);
            });
            
    };

    const onChange = e => {
        const {name, value} = e.target;
        setInputs(prev => ({
            ...prev,
            [name]: value
        }));
    };

    return (
        <div>
            <form onSubmit={onSubmit}>
                <input type="text" name="username"onChange={onChange}/>
                <input type="password" name="password" onChange={onChange}/>
                <input type="submit" value="회원가입" />
            </form>
        </div>
    );
}

백엔드 단에서는 구조가 약간 다르긴 하지만 accounts 부분은 크게 다르지 않습니다.

accounts/models.py
from django.db import models

class User(models.Model):
    user_id = models.CharField(max_length=32, unique=True, verbose_name='id')
    user_pw = models.CharField(max_length=128, verbose_name='password')
    user_name = models.CharField(max_length=16, unique=True, verbose_name='name')
    user_Email = models.EmailField(max_length=128, unique=True, verbose_name='email')

    def __str__(self):
        return self.user_name #오브젝트 호출시 user_name으로 표시
    
    class Meta: #DB 테이블 명 지정
        db_table = 'user'
        verbose_name = 'user'
        
accounts/serializers.py

from rest_framework import serializers
from django.contrib.auth import get_user_model

User = get_user_model()

class SignupSerializer(serializers.ModelSerializer):
    #pw 보안
    password = serializers.CharField(write_only=True)

    def create(self, validated_data):
        user = User.objects.create(username=validated_data["username"])
        user.set_password(validated_data["password"]) #암호화된 비번 저장
        user.save()
        return user
    
    class Meta:
        model = User
        fields = ["pk", "username", "password"]
from django.urls import path

from . import views

urlpatterns = [
    path('signup/', views.SignupView.as_view(), name='login'),
]
from django.contrib.auth import get_user_model
from django.shortcuts import render
from rest_framework.permissions import AllowAny
from rest_framework.generics import CreateAPIView
from .serializers import SignupSerializer

#회원가입 뷰
#createapiview 이므로 get 메소드 허용X
class SignupView(CreateAPIView):
    model = get_user_model()
    serializer_class = SignupSerializer
    Permission_classes = [
        AllowAny,#실제로 회원가입할 때는 로그인은 되면 안됨
    ]

혹시 뭐가 원인일지 추측이라도 해주시면 감사하겠습니다..혹시 버전문제일 수도 있을까요? 현재 장고는 3.2 리액트는 18이긴합니다

react python django docker

답변 1

1

이진석

안녕하세요.

거의 모든 CBV의 속성명은 소문자입니다.

아래처럼 Permission_classes로 쓰셔서, AllowAny가 반영이 안 된듯 보입니다.

image

확인해보시고 댓글 부탁드립니다.

화이팅입니다. :-)

1

윤해빈

와...이걸 못찾아서 몇시간을....ㅠㅠㅠ

정말 감사합니다!!

안녕하세요.

0

49

1

[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?

0

274

1

useEffect 훅에서 else 유무에 따른 결과

0

211

1

useAxios 훅의 dependency array 설정

0

245

1

useEffect에서 변수 업데이트 관련 질문

0

382

1

rest_framework.generics.CreateAPIView의 model 속성 유무

0

268

1

bootstrap4

0

471

4

리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요

1

364

1

admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법

0

574

3

useState는 필수일까요?

0

263

1

python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.

0

600

4

Django allauth를 사용한 소셜 로그인 시 에러

0

655

1

프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러

0

556

2

useLocalStorage() 함수 사용여부

0

229

1

django에 LOGIN_URL = '/accounts/login/'의 의미?

0

449

1

리듀서의 의미 재확인

0

430

1

simple-jwt Refresh Token 사용 노하우

0

899

2

docker compose 를 통한 배포 관련 오류 문의

0

670

1

파이썬 속도 장고 관련 궁금한게 있습니다.

0

365

1

is_like_user

0

233

1

related_name 오류

0

275

1

re_path 오류

0

258

1

re_path url

0

251

1

No post matches the given query

0

661

2