J'essaie d'obtenir la variable sociale de session de mon modèle. J'ai 2 boutons séparés pour Inscription et Connexion à l'aide type_login clé:SOCIAL_AUTH_FIELDS_STORED_IN_SESSION dans python-social-auth est toujours Aucun dans mon pipeline personnalisé
<a href="{% url 'social:begin' 'facebook' %}?next={{ request.path }}?login_type=1"><img src='img.png'> </a>
<a href="{% url 'social:begin' 'facebook' %}?next={{ request.path }}?login_type=2"><img src='img2.png'></a>
Dans mes paramètres:
SOCIAL_AUTH_FIELDS_STORED_IN_SESSION = ['login_type']
J'ai aussi essayé avec:
FIELDS_STORED_IN_SESSION = ['login_type']
mon pipeline personnalisé:
SOCIAL_AUTH_PIPELINE = (
'social.pipeline.social_auth.social_details',
'social.pipeline.social_auth.social_uid',
'social.pipeline.social_auth.auth_allowed',
'social.pipeline.social_auth.social_user',
'FBAuth.facebook.check_if_exists',
'social.pipeline.user.get_username',
'social.pipeline.user.create_user',
'social.pipeline.social_auth.associate_user',
'social.pipeline.social_auth.load_extra_data',
'social.pipeline.user.user_details',
)
facebook.py:
from django.conf import settings
from django.shortcuts import redirect, HttpResponse
def check_if_exists(strategy, request, *args, **kwargs):
login_type = strategy.request.GET.get('login_type')
#login_type = strategy.session_get('key') (I tried all cases)
#login_type = request['login_type']
#login_type = strategy.request['login_type']
logger.debug("is_new parameter is %s", kwargs['is_new'])
logger.debug("login_type is %s", login_type)
if kwargs['is_new']:
if login_type == 1:
return redirect('/', message ='Specified social account is not yet associate with any existent user, try to Sign up first')
else:
if login_type == 2:
return redirect('/', message = 'User for this account is already exist, try to login')
return None
mais, dans tous les cas dans mes journaux, je vois toujours « Aucun type_login est »
Qu'est-ce qui ne va pas?