참고
https://www.youtube.com/watch?v=GEKo80jBAXA&list=PLEYmkoTDkhFwshtF_c00ZE8BbwsEoVQQg&index=90
소셜로그인의 장점
가장 큰 장점은 편의성이라 볼 수 있다.
회원가입 절차를 생략할 수 있으며 아이디 비밀번호를 기억하지 않아도된다.
또한 대형사이트를 통한 로그인은 보안적으로 안전할 확률이 높습니다.
소셜로그인의 단점
소셜로그인을 통하면 최소한의 개인정보를 통해 가입이 가능할 수도 있으나 소셜계정의 해킹이 발생할 시 큰 문제가 될 수 있다.
제 3자 정보제공 역시 꼼꼼히 확인할 필요가 있다.
소셜계정을 탈퇴할 경우 로그인을 할 수 없다.
순서
앱설치->settings.py수정->urls 수정->API키 발급받기->login.html수정
앱설치
terminal창에 입력
1 | pip install django-allauth | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', #블로그 'blog', #커스텀유저 'users', #소셜로그인 관련앱 'django.contrib.sites',#사이트,url정보 관리 해주는 기능 'allauth',#설치한앱 'allauth.account',#소셜로그인한 계정관리 'allauth.socialaccount',#소셜account 정보관리 'allauth.socialaccount.providers.naver',#네이버 소셜로그인 ] | cs |
먼저 Install_apps에 우리가 설치한 allauth와 sites를 추가해준다.
이제 앱관련 설정들을 해보자
1 2 3 4 5 6 | #로그인과정전에 누구한테 맡길지 AUTHENTICATION_BACKENDS=[ 'django.contrib.auth.backends.ModelBackend',#기본장고 유저 'allauth.account.auth_backends.AuthenticationBackend',#소셜로그인 인증체계 ] | cs |
기존 유저 인증과 allauth를 이용한 인증 두가지를 하기위해 추가해준다.
sites관련 설정도 추가해준다.
1 2 | #위에'django.contrib.sites'에 첫번째 인스턴스 사용 SITE_ID=1 | cs |
마지막으로 migrate 해준다.
terminal창에 입력
1 | python manage.py migrate | cs |
mystie/urls.py 수정
API키 발급받기
이제 구글과 네이버에 API키를 발급받아봅시다.
키발급방법은 아래 사이트들의 설명을 따라 발급받으시면 됩니다.
네이버
https://www.youtube.com/watch?v=FhYihdtC6w8&list=PLEYmkoTDkhFwshtF_c00ZE8BbwsEoVQQg&index=91
구글
https://ssungkang.tistory.com/entry/Django-13-%EC%86%8C%EC%85%9C-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EA%B5%AC%ED%98%84-kakaogoogle-fackbook-%EB%93%B1
login.html수정
마지막으로 소셜로그인을 할 수 있는 링크를 만들어줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | {% extends 'blog/base.html' %} {% block content %} {% if user.is_authenticated %} 로그인성공! {{ user.username}}님 환영합니다. {% else %} <form action="" method="POST"> {% csrf_token %} <input name ="username" type="text"> <input name ="password" type="password"> <input type ="submit" value="로그인"> </form> <a href="/accounts/google/login/?process=login">구글로그인</a> <a href="/accounts/naver/login/?process=login">네이버로그인</a> <a href="{% url 'users:signup' %}">회원가입</a> {% endif %} {% endblock %} | cs |
다음엔 계정에 따라 게시글을 수정 삭제하는 기능과 게시글에 이미지도 넣고 textedit를 적용시켜볼 예정입니다.
'웹개발 > Django' 카테고리의 다른 글
django 추가기능 구현 - markdown editor(summernote) (0) | 2022.05.16 |
---|---|
Django 텍스트에디터(ckeditor) #14 (0) | 2020.12.25 |
Django 로그인/회원가입 #12 (0) | 2020.12.20 |
Django 페이징 #11 (0) | 2020.12.20 |
Django 네비게이션바 #10 (0) | 2020.12.14 |
최근댓글