Je pense que j'utilise l'API utilisateurs mal:Google App Engine: API Users agissant bizarrement
class BaseHandler(webapp.RequestHandler):
user = users.get_current_user()
def header(self, title):
if self.user:
render('Views/link.html', self, {'text': 'Log out', 'href': users.create_logout_url('/')})
else:
render('Views/link.html', self, {'text': 'Log in', 'href': users.create_login_url('/')})
lien.html:
<p>
<a href="{{href}}">{{text}}</a>
</p>
Parfois ça marche, parfois, il n » t. Je clique 10 fois de suite sur le lien «déconnecter» et recharge la page, ce qui me redirige vers la page '/'
. Puis, mystérieusement, une fois, je serai déconnecté. La connexion échoue essentiellement de la même manière. Que se passe t-il ici?
Résolu - Cela fonctionne:
class BaseHandler(webapp.RequestHandler):
def __init__(self):
self.user = users.get_current_user()
def header(self, title):
if self.user:
render('Views/message.html', self, {'msg': "Welcome, %s" % self.user.nickname()})
render('Views/link.html', self, {'text': 'Log out', 'href': users.create_logout_url('/')})
else:
render('Views/link.html', self, {'text': 'Log in', 'href': users.create_login_url('/')})
Il semble que je peux avoir des variables d'instance en se référant à eux comme self.var_name
dans une fonction, mais jamais les déclarer à un niveau de classe. Impair.
Est-ce réellement un GAE ou le serveur de dev? – prestomation
Cela fonctionne sur le serveur de dev sur ma machine. –
Vous devez utiliser firebug ou une autre console de développement pour voir ce qui se passe lorsque vous cliquez sur «déconnecter». Il devrait vous rediriger vers/_ah/..., qui devrait envoyer un en-tête Set-Cookie pour effacer le cookie, puis vous rediriger vers /. –