월 6000 버는 그날까지

[iOS][Swift] Status Code 403 본문

WaNOTE

[iOS][Swift] Status Code 403

WaNOTE 2017. 6. 25. 14:26

Django를 이용하고, Rest framework를 이용하여 api 서버를 구축하였다.


웹 브라우저(web browser)를 통해서 api에 id와 비밀번호로 접근 하면 제대로 token을 얻어왔다. 

하지만 Swift로 접근시 Status Code 403이 나왔다.

문제는 Csrf 였다. 현재 인증방식은 SessionAuthentication이라서 csrf를 주고 받아야 한다. 웹은 가능 하나, Swift는 불가능 하다.

따라서 인증 방식을 tokenAuthentication으로 바꿔 줌으로써 해결하였다. 


setting.py에서 밑에 내용을 추가 해주고,

INSTALLED_APPS = ( 'rest_framework', 'rest_framework.authtoken', 'myapp', ) REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated', ), 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.TokenAuthentication', ) }

myapp 폴더에 model.py에 밑에 내용을 추가 해준다.


from django.db.models.signals import post_save
from django.dispatch import receiver
from rest_framework.authtoken.models import Token
from django.conf import settings

# This code is triggered whenever a new user has been created and saved to the database

@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
    if created:
        Token.objects.create(user=instance)


'WaNOTE' 카테고리의 다른 글

key chain 내용  (1) 2017.07.02
[iOS][Swift] Break point 1.1  (0) 2017.07.02
[iOS][Swift] Optional 이란?  (0) 2017.06.24
[iOS][Swift] Array 와 Dictionary 와 Set 이란?  (0) 2017.06.23
[iOS] [Swift] Tuple과 typealias 란?  (0) 2017.06.23
Comments