2009-12-07 6 views
0

Je veux avoir des flux RSS dans mon application Django, qui devrait être visible uniquement par un utilisateur connecté. Je souhaite autoriser les utilisateurs à ajouter ces flux RSS à tous les agrégateurs, donc j'aurais besoin de quelque chose qui fonctionnerait de la manière suivante: fournir l'URL du flux avec un jeton, par exemple: http://example.com/feed/rss&token=AeYQtFjQfjU5m pour que le jeton provoque le flux vu comme si l'utilisateur serait connecté.comment autoriser les agrégateurs RSS à utiliser des flux disponibles uniquement pour les utilisateurs connectés?

Y at-il une bibliothèque dans Django qui fournirait une telle fonctionnalité ?

Répondre

2

Essayez de faire un hachage une propriété unique de l'utilisateur ... quelque chose comme

md5("%s!%s" % (SECRET_KEY, user.username)).hexdigest() 

PS - Je n'ai pas testé ce code, mais vous obtenez l'idée

+0

OK, merci. Juste deux notes: si je "importer md5" il en résulte TypeError: objet 'module' n'est pas appelable M'a pris un certain temps pour savoir que j'ai besoin de md5.md5 ("% s!% S"% (SECRET_KEY, utilisateur. nom d'utilisateur)). hexdigest() Mais ensuite découvert que c'est déprécité, et depuis Python 2.5 on devrait utiliser: hashlib.md5 ("% s!% s"% (SECRET_KEY, user.username)). hexdigest() ou même:. hashlib.sha512 ("!% s% s" % (secret_key, user.username)) hexdigest() – miernik

+0

oui qui devrait commencer par 'd'importation hashlib md5' = D – Jiaaro

2

Vous pouvez générer le jeton lors de la création d'un utilisateur pour la première fois. De cette façon, vous pouvez ajouter le jeton au flux lorsqu'un utilisateur est connecté. Plus tard, lorsqu'un lecteur de flux RSS arrive sur votre site pour l'utilisateur, il vous suffit de charger les informations utilisateur de l'utilisateur avec ce jeton.

+0

qui est essentiellement la sécurité par l'obscurité , mais en même temps, c'est la meilleure solution possible, puisque les agrégateurs RSS ont tendance à ne plus supporter l'authentification. – Jiaaro

+0

Je n'ai pas décrit la façon dont vous pourriez générer le jeton. J'utiliserais un type de jeton généré aléatoirement, car il est plus facile de le régénérer s'il est compromis. Votre solution fonctionnerait pour. –

Questions connexes