code: def oauth2callback(self, view_func):
          
  
          @wraps(view_func)
          def decorated(*args, **kwargs):
              params = {}
  
              # Check sig
              if 'state' in request.args:
                  params.update(**self.parse_state(request.args.get('state')))
                  if params.pop('sig', None) != make_secure_token(**params):
                      return self.login_manager.unauthorized()
  
              code = request.args.get('code')
  
              # Web server flow
              if code:
                  token = self.exchange_code(
                      code,
                      url_for(
                          request.endpoint,
                          _external=True,
                          _scheme=self.redirect_scheme,
                      ),
                  )
                  userinfo = self.get_userinfo(token['access_token'])
                  params.update(token=token, userinfo=userinfo)
  
              # Browser flow
              else:
                  if params:
                      params.update(dict(request.args.items()))
                  else:
                      return '''
                      <script>
                        window.onload = function() {
                          location.href = '?' + window.location.hash.substr(1);
                        };
                      </script>
                      '''
  
              return view_func(**params)
  
          return decorated
docs: Decorator for OAuth2 callback. Calls `GoogleLogin.login` then
          passes results to `view_func`.