Changed the 'create_access_token' function in order to add the extra data into 'create_jwt' function
This commit is contained in:
		
							parent
							
								
									9c8ecf6ee7
								
							
						
					
					
						commit
						2253bbf361
					
				| @ -84,7 +84,11 @@ class CognitoIdpUserPool(BaseModel): | |||||||
|         return refresh_token |         return refresh_token | ||||||
| 
 | 
 | ||||||
|     def create_access_token(self, client_id, username): |     def create_access_token(self, client_id, username): | ||||||
|         access_token, expires_in = self.create_jwt(client_id, username) |         extra_data = self.get_user_extra_data_by_client_id( | ||||||
|  |             client_id, username | ||||||
|  |         ) | ||||||
|  |         access_token, expires_in = self.create_jwt(client_id, username, | ||||||
|  |                                                    extra_data=extra_data) | ||||||
|         self.access_tokens[access_token] = (client_id, username) |         self.access_tokens[access_token] = (client_id, username) | ||||||
|         return access_token, expires_in |         return access_token, expires_in | ||||||
| 
 | 
 | ||||||
| @ -97,6 +101,21 @@ class CognitoIdpUserPool(BaseModel): | |||||||
|         id_token, _ = self.create_id_token(client_id, username) |         id_token, _ = self.create_id_token(client_id, username) | ||||||
|         return access_token, id_token, expires_in |         return access_token, id_token, expires_in | ||||||
| 
 | 
 | ||||||
|  |     def get_user_extra_data_by_client_id(self, client_id, username): | ||||||
|  |         extra_data = {} | ||||||
|  |         current_client = self.clients.get(client_id, None) | ||||||
|  |         if current_client: | ||||||
|  |             for readable_field in current_client.get_readable_fields(): | ||||||
|  |                 attribute = list(filter( | ||||||
|  |                     lambda f: f['Name'] == readable_field, | ||||||
|  |                     self.users.get(username).attributes | ||||||
|  |                 )) | ||||||
|  |                 if len(attribute) > 0: | ||||||
|  |                     extra_data.update({ | ||||||
|  |                         attribute[0]['Name']: attribute[0]['Value'] | ||||||
|  |                     }) | ||||||
|  |         return extra_data | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class CognitoIdpUserPoolDomain(BaseModel): | class CognitoIdpUserPoolDomain(BaseModel): | ||||||
| 
 | 
 | ||||||
| @ -138,6 +157,9 @@ class CognitoIdpUserPoolClient(BaseModel): | |||||||
| 
 | 
 | ||||||
|         return user_pool_client_json |         return user_pool_client_json | ||||||
| 
 | 
 | ||||||
|  |     def get_readable_fields(self): | ||||||
|  |         return self.extended_config.get('ReadAttributes', []) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class CognitoIdpIdentityProvider(BaseModel): | class CognitoIdpIdentityProvider(BaseModel): | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user