2017-05-31 2 views
0

Je suis un débutant dans JS angulaire et django. Je suivais ce tutoriel particulier en faisant une application d'authentification de facebook.Authentification de Facebook en utilisant JS angulaire et Django

http://cbdev.blogspot.in/2014/02/facebook-login-with-angularjs-django.html

J'ai suivi le tutoriel exactement. Et quand je démarre le serveur, j'ai l'erreur.

NameError at/

name 'strategy' is not defined 

Request Method:  GET 
Request URL: http://127.0.0.1:8000/ 
Django Version:  1.3.1 
Exception Type:  NameError 
Exception Value:  

name 'strategy' is not defined 

Exception Location:  /root/Documents/django/clueless/clueless_engine/../clueless_engine/views.py in <module>, line 1 
Python Executable: /root/Documents/django/clueless/bin/python 
Python Version:  2.7.13 
Python Path:  

['/root/Documents/django/clueless/clueless_engine', 
'/root/Documents/django/clueless/lib/python2.7', 
'/root/Documents/django/clueless/lib/python2.7/plat-x86_64-linux-gnu', 
'/root/Documents/django/clueless/lib/python2.7/lib-tk', 
'/root/Documents/django/clueless/lib/python2.7/lib-old', 
'/root/Documents/django/clueless/lib/python2.7/lib-dynload', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/root/Documents/django/clueless/local/lib/python2.7/site-packages', 
'/root/Documents/django/clueless/lib/python2.7/site-packages'] 

Server time: Thu, 1 Jun 2017 07:30:14 +0530 

mon fichier views.py est

@strategy() 
def auth_by_token(request, backend): 
    backend = request.strategy.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# Return anything that makes sense here 
    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: 
      strategy = load_strategy(request=request, backend=backend) 
      _do_login(strategy, 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) 

Répondre

0

J'ai créé l'authentification Auth sociale en utilisant auth scocial python. vous pouvez vérifier: https://github.com/ranvijay-sachan/django-rest-login-and-social_auth/tree/master/profiles

POST: http://localhost:8000/api/v1/login/2/

Content-Type : application/json 

{ "accessToken": "alert token" } 
+0

Merci. Mais pouvez-vous trouver ce qui cause cette erreur? –

+0

Je pense que vous devez importer le module comme: de social.apps.django_app.utils importer load_strategy stratégie = load_strategy (demande) –

+0

Je ne peux pas croire que j'ai raté !! –

0

Le problème était que j'ai oublié d'importer des modules.

from social.apps.django_app.utils import load_strategy strategy = load_strategy(request)