2

이 문제에 페이스 북 로그인을 구현하는 방법에 유래 매우 일반적이고, 거기에 대해 다른 질문과 답변이 많이있어, 아직 내가 정확히 내가 원하는 것을 찾을 수 없습니다 .간단하고 최신 장고 응용 프로그램

먼저, 사용자가 Facebook 자격 증명을 사용하여 내 앱에 로그인 할 수있게하는 옵션을 정확하게 정의하고 싶습니다. 응용 프로그램은 일치하는 고전 장고 사용자를 저장합니다. 필자는 사용자 프로필 사진을 사용하고 동일한 Facebook 사용자가 매칭되는 Django 사용자와 관련 될 때마다 확인해야합니다.

불행히도, 난 정말 실망 다음과 같은 이유로 구현하기 위해 찾을 :

  1. 지금까지 많이 읽은 후, 나는이 작업에 가장 적합한 패키지 무엇인지 찾을 수 없습니다.
  2. 어떤 사람들은 django-social-auth를 권장하고 그 기능과 문서를 칭찬합니다. 개인적으로, 왜 페이스 북을위한 것이 아니고 클라이언트 측, 즉 페이스 북의 로그인 버튼과 전체 흐름의 작동 방식에 대한 설명이 없기 때문에 나는 그 이유를 이해하지 못합니다.
  3. Facebook 개발자가되면 갑자기 일부 마법의 javascript SDK에 대해 읽고 자신에게 필요한 것이 전부라고 약속하게됩니다. 그렇다면 다시 좌절감을 느끼고 클라이언트 측 SDK와 관련하여 앱에 사용자를 등록하는 방법을 이해할 수 없습니다.

나는 개발자들이 어떻게 든 애플 리케이션에 페이스 북의 인증 패키지를 구현한다는 것을 알고 있지만 어떻게 해야할지 알 수 없다.

누군가가 나에게 말할 수있는 경우 :이 시점에서 내 장고 앱에 Facebook 인증을 추가하는 가장 좋은 방법은 무엇입니까? 또한 페이스 북 사용자 로그인, 설정 및 구성 단계에서 Django 응용 프로그램 및 클라이언트 측 코드에 로그인하는 방법을 설명하는 자세한 설명서/자습서를 요청합니다.

답변

3

"가장 좋은"방법은 실제로 주관적인 문제에 접근하는 여러 가지 방법이 있습니다.

주관적으로 말하면 django-allauth을 선택할 수 있습니다. 여기에 당신이 시작하는 데 도움이되는 몇 가지 포인터는 다음과 같습니다

  • 당신은 간단한 가입을 유지하려면

    이는 "아무 질문도 없다"로그인을 달성하기 위해 TrueSOCIALACCOUNT_AUTO_SIGNUP을 설정합니다. 사용자는 FB 대화 상자를 승인하기 만하면 사이트에 즉시 로그인하게됩니다.

    <a href="{% provider_login_url "facebook" %}">Sign In</a>

  • 앱이 JS SDK 로그인에 대한 지원을 제공가 (프로 : 사용자가 나타나는 전형적인 FB 팝업에 익숙한 템플릿에 로그인 버튼을 추가

  • 단지의 문제입니다), 또는 자신의 OAuth 플로우를 사용할 수 있습니다. 뭐든간에.

+0

흐름이 어떻게 진행되는지 설명해 주시겠습니까? 내 말은, 내가 그 모든 일을한다고 - 로그인 FB 사용자가 일치하는 장고 사용자를 얻을 수 있습니까? FB 사용자의 프로필 사진에 액세스하고 사용하려면 어떻게합니까? 특정 장고 사용자가 Facebook 로그인을 사용하여 가입했는지 어떻게 알 수 있습니까? – user1639431

+0

"로그인"을 클릭하면 DoesNotExist가/accounts/facebook/login/ SocialApp 일치하는 쿼리가 존재하지 않습니다. – user1639431

+0

프로필 사진은 다음을 참조하십시오. http://stackoverflow.com/questions/12222021/how-can-i-get-the-users-facebook-id-with-django-allauth/12226639#12226639 – pennersr

0

django-social-auth는 Facebook에만 사용되는 것이 아니라 모든 백엔드를 사용해야한다는 것을 의미하지는 않습니다.

프로젝트 문서는 http://django-social-auth.readthedocs.org/en/latest/backends/facebook.html에서 http://django-social-auth.readthedocs.org/en/latest/index.html와 페이스 북 백엔드 세부 사항에 있습니다.

+0

설명서를 따라 django-social-auth를 설치하고 Facebook 관련 백엔드 만 사용했습니다. 나는 또한 프로젝트의 urls.py에 아무것도 넣지 않았다. 이피. ** 이제 무엇? **보기는 어떻습니까? 사용자는 어떻게 생성되고 있습니까? 내가 어떻게 어떤 views.py 함수도 작성하지 않았을 수 있습니까? 설명 된 흐름은 어디에 있습니까? 클라이언트 측과 Facebook의 로그인 버튼은 어떻습니까? 토큰은 어떨까요? 다음에 무엇을할지...? – user1639431

+0

django-social-auth (지금부터는 DSA)는 로그인/등록/연결 해제 만 처리하며 다른보기, 템플릿 등을 제공하지 않습니다. 이는 사용자가 사이트에 필요한 사용자 경험을 충족시키는 것입니다. 사용자 등록은'/ login/facebook /'을 가리키는 링크/버튼으로 시작됩니다. 템플릿에서'{% url socialauth_begin "facebook"%} "를 사용하면'User'와'UserSocialAuth' 인스턴스를 생성 할 수 있습니다. (페이스 북의'access_token', 페이스 북 ID 등). 그런 다음 'access_token'에 액세스 할 수있는 Facebook API를 호출 할 수 있습니다. 현재로서는 설명 할 흐름이 없습니다. – omab

+1

고마워요,하지만 이것은 정확히 문제입니다 - 지금은 설명의 흐름이 없습니다. 나는 나의 숙련 된 기술을 연마 할만큼 충분히 숙련되지 않았기 때문에 앞으로도 고귀한 영혼을 얻을 수 있기를 바랍니다. – user1639431

1

FB의 Oauth 2.0 흐름을 가장 빨리 이해하는 방법은 FB의 Javascript SDK를 사용하는 것입니다. 일단 FB의 PHP 라이브러리가 비슷하다. 또한 Google, Twitter 또는 Dropbox와 같은 다른 OAuth 사이트는 거의 동일한 구현을합니다. 아기 단계에서

는 :

  1. 로그인 상태를 확인하고 로그인 URL을 얻기 위해 사용 FB.login

  2. 간단한 페이지에 FB Javascript SDK를 설치하는 방법에 대해 알아보십시오.

  3. 마지막으로 FB.Event.Subscribe을 사용하고 auth.statusChange를 구독하여 로그인/로그 아웃 변경 사항을 감지하십시오.

또한 곧 발견 될 특징이나 기능을 확인해 보는 것이 좋습니다.

+0

감사합니다. FB js sdk에 대해 알아야하지만 python-oauth2를 제외한 특별한 패키지를 설치할 필요가 없습니까? (다른 말로하면 : django-social-auth가 설치되어 있지 않아도됩니까?) – user1639431

+0

일반적으로 FB (& Google) API를 테스트하려면 [작은 응용 프로그램] (http://apps.facebook.com/oauth_two_test)을 작성하십시오. 내 코드가 여전히 유효 함을 보장하기 위해 수시로. 이 Python 앱은 Google App Engine에서 실행됩니다. –