Benim anlayış required
yapar iken aware
, yetki zorlamak olmamasıdır, ama bu pratikte gördüğüm şey değil. Aşağıdaki iki webapp RequestHandlers sahibiyim, bunlardan biri get()
yönteminin decorator.oauth_aware
ve diğeri decorator.oauth_required
ile dekore edilmiştir. Ancak, yerel olarak veya App Engine'de çalıştırdığımda, her ikisi de hemen giriş akışına yönlendirilir. SplashHandler
hedef, kullanıcıya zaten olmadıkları konusunda bir bağlantı vermek için /tasks/
iletin ve daha sonra /tasks/
iletin.OAuth2Decorator oauth_aware kuvvetleri kimlik doğrulama
decorator = OAuth2Decorator(
client_id=settings.CLIENT_ID,
client_secret=settings.CLIENT_SECRET,
scope=settings.SCOPE,
user_agent='mytasks')
class SplashHandler(webapp.RequestHandler):
@decorator.oauth_aware
def get(self):
if not decorator.has_credentials():
self.response.out.write(template.render('templates/convert.html',
{'authorize_url': decorator.authorize_url()}))
else:
self.redirect('/tasks/')
class TasksHandler(webapp.RequestHandler):
@decorator.oauth_required
def get(self):
tasks = get_tasks()
tasks.sort(key=lambda x: x['due'])
self.response.out.write(template.render('templates/index.html',
{'tasks': tasks}))
application = webapp.WSGIApplication(
[('/', SplashHandler), ('/tasks/', TasksHandler)], debug=True)
Bunun için teşekkürler - bu çok mantıklı. Kullanım durumumun muhtemelen daha yaygın olduğu konusunda hemfikir olurdum, ama önyargılıyım (: "oauth_aware" kaynağına bir göz atacağım ve kendim yazacağım. Tekrar teşekkürler! –