반응형

참고

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

*에러가 발생시(Could not build wheels for cryptography which use PEP 517 and cannot be installed directly)

https://community.home-assistant.io/t/windows-10-failed-building-wheel-for-cryptography/233257


mysite/settings.py 수정

앱등록과 앱세팅관련 수정을 해준다.
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 수정

1
path('accounts/',include('allauth.urls')),
cs
위 코드를 추가하여 줍니다.





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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기