sns 계정을 연동해서 사용하기
댓글달기 기능만 sns 연동하면 할 수 있게?
추가적으로 나중에 북마크 기능을 달면 scrap 되도록 해주면 좋을듯 (login시에만…)s
social-auth 사용하기
설치
pip install social-auth-app-django
로 간단하게 설치할 수 있음.
INSTALLED_APPS에
social_django
추가python mange.py migrate
로 마이그레이트 하기
세팅
settings.py
의MIDDLEWARE_CLASSES
에 추가하기
'social_django.middleware.SocialAuthExceptionMiddleware',
TEMPLATE의 context_processors 추가하기
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
PROJECT_DIR.child('templates'),
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'social_django.context_processors.backends', # <--
'social_django.context_processors.login_redirect', # <--
]
},
},
]
AUTHENTICATION_BACKENDS
추가하기
사용할 것들을 추가해주 면 되는 것 같다. 나는 일단 페이스북만 구현하기. 위해 페북을 넣었다.
AUTHENTICATION_BACKENDS = (
'social_core.backends.github.GithubOAuth2',
'social_core.backends.twitter.TwitterOAuth',
'social_core.backends.facebook.FacebookOAuth2',
'django.contrib.auth.backends.ModelBackend',
)
Facebook 개발자 페이지에서 키, 시크릿키(?)를 얻은 다음에 추가해주기
SOCIAL_AUTH_FACEBOOK_KEY = ''
SOCIAL_AUTH_FACEBOOK_SECRET = ''
URL에 추가
urls.py
에다가 추가해준다. 나는 oauth로 추가였다.
url(r'^oauth/', include('social_django_urls', namespace='social'))
Template
{% url "social:begin" "facebook" %}?next={{ request.path }}
로 url 만들 수 이씀
이제 버튼을 누르면 자동으로 facebook 페이지로 넘어가진다… 휴 어렵네
댓글달기에 적용시키기
=> 댓글 창이 아예 안 나와있고 로그인시 댓글 창이 뜨게 하는 방법
=> 댓글 창이 블락되어있고 로그인시 쓸 수 있게 해놓기?
<input disabled>
로 input 창을 비활성화 시킬 수 있음
추가적인 이슈
페이스북 로그인시 redirect 문제: ?next={{ request.path }}로 해결댓글 수정/삭제시 특정 유저가 작성했는지에 대한 이슈 => 완료하긴 했으나 detail 페이지가 수정도면 update_comment 페이지도 수정해야함...로그아웃시 redirect 문제 => 이전 url로 다시 돌아오게
'backend > django' 카테고리의 다른 글
django의 context processor / Forms (form disabled) (0) | 2017.04.16 |
---|---|
장고에서 세션, 쿠키, 캐시에 대해서... (0) | 2017.04.16 |
장고 페이지네이션 구현하기 (0) | 2017.04.05 |
각종 장고 에러코드 정리 (1.10 에러) (0) | 2017.03.25 |
각종 장고 에러코드 정리 (Django 1.10 에러) (0) | 2017.03.23 |