본문 바로가기
TTL/5주차 ~ 8주차 TIL (9.26 ~ 10.21)

2022-10-14 TIL (authenticated, anonymous 차이)

by dev_junseok 2022. 10. 17.

보통 웹 사이트를 보면, 로그인을 한 후에는 로그인 화면이 뜨지 않는다. 이건 당연한거 같지만 사실 이것도 엄연한 프로그래밍의 일종이다.

 

장고에서 로그인 view를 짜다 보면 해당 기능을 넣어줘야 한다.

 

예시로 코드 하나를 들면

 

 user = request.user.is_authenticated
        if user: #로그인이 되어 있을때
            return redirect('/')
        else: #로그인이 되어 있지 않을때
            return render(request, 'user/signin.html')

user.is_authenticated 란? django에서 기본적으로 제공하는 인증 기능이다.

user.is_authenticated는 해석하면 인증이 되어 있다면 이다.

위 코드는 로그인이 되어 있다면 / url로 연결시켜줄 것이고, 되어있지 않다면 user/signin.html 로 연결시켜 줄 것이다.

 

user.is_authenticated 의 반대 기능인 anonymous를사용해 코드를 바꿔보았다.

user = request.user.is_anonymous
        if user: #로그인이 되어 있지 않을때
            return render(request, 'user/signin.html')
        else: #로그인이 되어 있을때
            return redirect('/')

 이렇게 바꿀수 있다.

user.is_anonymous는 말 그대로 로그인이 되어 있지 않다면 이라는 뜻이다. user.is_authenticated와 반대로 작동한다는 의미이다. 아래의 if문도 바꿔주면 동일하게 작동한다.