kullanarak kodunda Erişim Token tarafından kimlik doğrulaması için. Erişim Simgesi, mobil uygulamada (sanırım) alınmalı ve sunucuya gönderilmelidir. Bu yüzden eski öğreticide bazı kodlar buldum ve işe yaramayacağım.nasıl REST API var ve Facebook Giriş API aracılığıyla kullanıcıların kimliğini doğrulamak için gereken piton-sosyal-kimlik doğrulama
from django.contrib.auth import login
from social.apps.django_app.utils import psa
# Define an URL entry to point to this view, call it passing the
# access_token parameter like ?access_token=<token>. The URL entry must
# contain the backend, like this:
#
# url(r'^register-by-token/(?P<backend>[^/]+)/$',
# 'register_by_access_token')
@psa('social:complete')
def register_by_access_token(request, backend):
# This view expects an access_token GET parameter, if it's needed,
# request.backend and request.strategy will be loaded with the current
# backend and strategy.
token = request.GET.get('access_token')
user = backend.do_auth(request.GET.get('access_token'))
if user:
login(request, user)
return 'OK'
else:
return 'ERROR'
: Ben
official documentation bir örnek buldum
'unicode' object has no attribute 'do_auth'
, bu
@psa('social:complete')
dekoratör kullanır: Ben parametrelerle POST isteği göndermeye çalıştığınızda
from social.apps.django_app.utils import strategy
from django.contrib.auth import login
from django.views.decorators.csrf import csrf_exempt
from rest_framework.decorators import api_view, permission_classes
from rest_framework import permissions, status
from django.http import HttpResponse as Response
@strategy()
def auth_by_token(request, backend):
user=request.user
user = backend.do_auth(
access_token=request.DATA.get('access_token'),
user=user.is_authenticated() and user or None
)
if user and user.is_active:
return user
else:
return None
@csrf_exempt
@api_view(['POST'])
@permission_classes((permissions.AllowAny,))
def social_register(request):
auth_token = request.DATA.get('access_token', None)
backend = request.DATA.get('backend', None)
if auth_token and backend:
try:
user = auth_by_token(request, backend)
except Exception, err:
return Response(str(err), status=400)
if user:
login(request, user)
return Response("User logged in", status=status.HTTP_200_OK)
else:
return Response("Bad Credentials", status=403)
else:
return Response("Bad request", status=400)
, bu hatayı alıyorum: İşte kod
Peki ya arka taraf ismini istek gövdesine iletmem gerekirse?
kullanarak herhangi piton-sosyal-yetkilendirme arka uç (Facebook, Google, Github vs.) hamiline jeton/üçüncü şahıs erişim belirteçleri ile django-dinlenme-çerçeve karşı kullanıcıların kimliğini doğrulayabilir Bu '' request.backend.do_auth (request.GET.get ('aCCESS_TOKEN')) '', doğru snippet'iyle dokümanlar güncelledik olmalıdır. – omab
Bir cevap olarak gönderebilir misiniz? Bu boru hattı social_auth.backends.pipeline.misc.save_status_to_session bir kullanıcı döndürmez yetkilendirme akışını neden oldu olmadan - –