Example #1
0
 def validate(self):
     """
     验证请求信息
     """
     if not self.grant_type:
         raise InvalidRequest('未提供参数:grant_type')
     if self.grant_type not in ["refresh_token", "password"]:
         raise UnsupportedGrantType('No grant type: %s' % self.grant_type)
     if not self.client_id:
         raise InvalidRequest('未提供参数:client_id')
     self.client = ClientDAO.get_client_by_key(self.client_id)
     if not self.client:
         raise InvalidClient("client_id %s doesn't exist" % self.client_id)
     self._validate_client_credentials()
     validate_map = {
         "password": "******",
         "refresh_token": "self._validate_refresh_token()",
         "authorization_code": "self._validate_authorization_code()",
     }
     eval(validate_map[self.grant_type])
Example #2
0
 def validate(self, response_type, client_id, redirect_uri):
     """
     Validate the request params.
     """
     if not redirect_uri:
         raise exceptions.MissingRedirectURI("No redirect_uri provided.")
     if not response_type:
         raise exceptions.InvalidRequest("response_type is a required parameter.")
     if response_type not in ["code"]:
         raise exceptions.InvalidRequest("No such response type %s" % response_type)
     if not client_id:
         raise exceptions.InvalidRequest("client_id is a required parameter.")
     client = ClientDAO.get_client_by_key(client_id)
     if not client:
         raise exceptions.InvalidClient("client_id %s doesn't exist" % client_id)
     if not client.redirect_uri:
         raise exceptions.MissingRedirectURI("No redirect_uri registered.")
     if normalize(redirect_uri) != normalize(client.redirect_uri):
         raise exceptions.InvalidRequest("Registered redirect_uri doesn't match provided redirect_uri.")
     if not absolute_http_url_re.match(redirect_uri):
         raise exceptions.InvalidRequest("Absolute URI required for redirect_uri")
     return client