def auth_factory(app, handler):
'''
middleware(???)???cookie?????????
'''
async def auth(request):
logging.info('check user: %s %s' % (request.method, request.path))
request.__user__ = None
cookie_str = request.cookies.get(COOKIE_NAME)
if cookie_str:
# ??cookie???????????
user = await cookie2user(cookie_str)
if user:
logging.info('set current user:%s' % user.email)
request.__user__ = user
if request.path.startswith('/manage/') and (request.__user__ is None or not request.__user__.admin):
# HTTPFound: Exception->HTTPRedirection->302
return web.HTTPFound('/signin')
return (await handler(request))
return auth
评论列表
文章目录