Blog project - 1

[ Blog project ]

  • github로 협업하여 진행

  • Social Login 이용하기(Facebook)

    • Facebook login을 사용하기 위해서는 HTTPS URL을 사용해야 한다.

    • 따라서 SSL을 적용해야 한다.

    • openssl로 인증서 만들기

      1. openssl의 버전을 확인한다.

        1
        2
        3
        4
        $ openssl version

        # version이 나타나지 않는다면 설치해야 한다.
        $ sudo apt-get install openssl
      2. 키 파일을 생성한다.

        1
        $ openssl genrsa 1024 > stunnel.key
      3. cert 파일을 생성한다.

        1
        openssl req -new -x509 -nodes -sha256 -days 365 -key django.key >django.cert
      4. 만든 해당 파일을 현재 진행중인 프로젝트 폴더로 복사해 넣는다.

    • ssl runserver 사용하기

      1. django-sslserver를 설치한다.

        1
        $ pip install django-sslserver
      2. settings.py의 INSTALLED_APPS에 추가한다.

        1
        2
        3
        4
        INSTALLED_APPS = [
        #...
        'sslserver',
        ]
      3. 다음 명령어를 실행해본다.

        1
        2
        3
        # 둘 중에 어떤 것으로 시작해도 된다.
        $ python manage.py runsslserver --certificate django.cert --key django.key
        $ python manage.py runsslserver
    • django allauth 사용하기(Facebook login)

      1. django-allauth를 설치한다.

        1
        $ pip install django-allauth
      2. settings.py의 INSTALLED_APPS에 추가한다.

        1
        2
        3
        4
        5
        6
        7
        8
        INSTALLED_APPS = [
        #...
        'django.contrib.sites',
        'allauth',
        'allauth.account',
        'allauth.socialaccount',
        'allauth.socialaccount.providers.facebook',
        ]
      3. settings.py에 다음 항목을 추가한다.

        1
        2
        3
        4
        5
        6
        AUTHENTICATION_BACKENDS = [
        'django.contrib.auth.backends.ModelBackend',
        'allauth.account.auth_backends.AuthenticationBackend',
        ]

        SITE_ID = 1
      4. urls.py에 allauth 관련 urlpatterns를 추가한다.

        1
        2
        3
        4
        urlpatterns = [
        #...
        path('accounts/', include('allauth.urls')),
        ]
      5. migrate를 한다.

        1
        $ python manage.py migrate
      6. Facebook 개발자 사이트로 이동한다.

      7. 로그인 한 후, 내 앱에서 새 앱 추가를 누른다.
      8. 적당한 앱 이름과 이메일을 입력하고 앱 ID 만들기를 누른다.
      9. 보안 확인 창이 나타나면 보안 확인을 완료하고 제출을 누른다.
      10. 앱 기능 중 Facebook 로그인 통합에 체크하고 확인을 누른다.
      11. 앱 생성이 완료되면 화면 하단의 내 제품 목록에서 Facebook 로그인의 설정을 누른다.
      12. 유효한 OAuth 리디렉션 URI에 다음과 같은 서버 주소를 입력한다.

        1
        2
        3
        https://127.0.0.1:8000
        # 'accounts'는 다른 이름으로 변경할 수 있다.
        https://127.0.0.1:8000/accounts/facebook/login/callback/
      13. 앱 기본 설정 페이지로 이동하여 앱 ID와 시크릿 코드를 확인한다.

      14. 관리자 페이지로 접속하여 Social applications에 설정을 추가한다.

        1
        2
        3
        4
        5
        - Provider : Facebook
        - Name : Facebook login
        - Client id : [Facebook 개발자 사이트에 있는 앱 ID]
        - Secret key : [Facebook 개발자 사이트에 있는 시크릿 코드]
        - Sites에 있는 example.com 선택
      15. 로그인 페이지에 접속하여 Facebook을 누른다.

      16. Facebook 창이 나타나면 계속을 누른다.
      17. 관리자 페이지에서 소셜 계정이 등록되었는지 확인한다.
Share