0

J'expérimente avec python social auth pour mon projet django et j'ai de la difficulté à comprendre le moyen le plus facile - le plus simple de créer/sauvegarder/récupérer des utilisateurs une fois connecté (par exemple via google).python social app (django) - enregistrer/récupérer correctement l'utilisateur

Je remarque que lors de la connexion, disons, gmail - une entrée est créée dans la table social auth/Users. Toutefois; la table Auth/Users n'a qu'une seule entrée à la fois (la personne qui est connectée).

Maintenant, mon pipeline de auth sociale va quelque chose comme ça

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', 
    'social.pipeline.user.get_username', 
    'social.pipeline.mail.mail_validation', 
    'social.pipeline.user.create_user', 
    'social.pipeline.social_auth.associate_user', 
    'social.pipeline.social_auth.load_extra_data', 
    'social.pipeline.user.user_details', 
    'path.to.my.own', 
) 

Comme vous pouvez le voir, j'ai mon propre gestionnaire de pipeline à la fin que je peux utiliser pour extraire plus d'informations.

Je suppose que je suis juste confus car je ne vois pas beaucoup d'exemples en ligne sur ce qui est la meilleure façon/la meilleure pratique de stocker et de récupérer les utilisateurs connectés de la DB? Dois-je simplement extraire le nom de l'utilisateur, le courrier électronique, etc. du pipeline, et créer mon propre modèle ou est-ce déjà fourni? Je suppose que juste pour reformuler la question pour plus de clarté: Est-ce que python social auth pour django contient un modèle pour cette table d'utilisateurs sociale que nous pouvons utiliser?

Répondre

0

Je pense que vous êtes confus sur le fonctionnement de python-social-auth lorsque vous cliquez sur le bouton/lien login de votre site. S'il y a un utilisateur connecté, le compte social sera associé à cet utilisateur, mais si personne n'est connecté, une nouvelle instance utilisateur sera créée (à moins que le compte social ait déjà été utilisé sur votre site).

Python-social-auth s'intègre à django-auth et prend également en charge des modèles utilisateur personnalisés, il ne fournit pas de modèle utilisateur uniquement l'ensemble des tables pour suivre l'association de compte social.

+0

Je suppose que c'est ce que j'essaie de savoir ... Lorsque la nouvelle instance d'utilisateur est créée sur une authentification sociale, comment puis-je l'utiliser. Comment puis-je créer une clé étrangère? comment puis-je l'interroger à partir de la base de données si un modèle n'existe pas pour cela? Vous mentionnez qu'il s'intègre avec le modèle utilisateur intégré de django mais comme je l'ai mentionné ci-dessus - un seul utilisateur apparaît dans la table Auth/User à tout moment? – efel

Questions connexes