code: def login_required(fn):
      
  
      async def wrapped(request, **kwargs):
          session = await get_session(request)
  
          if 'token' not in session:
              return web.HTTPFound(cfg.oauth_redirect_path)
  
          client = GoogleClient(
              client_id=cfg.client_id,
              client_secret=cfg.client_secret,
              access_token=session['token']
          )
  
          try:
              user, info = await client.user_info()
          except Exception:
              return web.HTTPFound(cfg.oauth_redirect_path)
  
          return await fn(request, user, **kwargs)
  
      return wrapped
docs: auth decorator
  
      call function(request, user: <aioauth_client User object>)