mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-10-31 19:17:48 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			24 lines
		
	
	
		
			819 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			819 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import md5 from 'md5';
 | |
| 
 | |
| const REQUIRED_USER_KEYS = ['avatar_url', 'email', 'name'];
 | |
| const ALLOWED_USER_ATTRIBUTES = [...REQUIRED_USER_KEYS, 'identifier_hash'];
 | |
| 
 | |
| export const getUserCookieName = () => {
 | |
|   const SET_USER_COOKIE_PREFIX = 'cw_user_';
 | |
|   const { websiteToken: websiteIdentifier } = window.$chatwoot;
 | |
|   return `${SET_USER_COOKIE_PREFIX}${websiteIdentifier}`;
 | |
| };
 | |
| 
 | |
| export const getUserString = ({ identifier = '', user }) => {
 | |
|   const userStringWithSortedKeys = ALLOWED_USER_ATTRIBUTES.reduce(
 | |
|     (acc, key) => `${acc}${key}${user[key] || ''}`,
 | |
|     ''
 | |
|   );
 | |
|   return `${userStringWithSortedKeys}identifier${identifier}`;
 | |
| };
 | |
| 
 | |
| export const computeHashForUserData = (...args) => md5(getUserString(...args));
 | |
| 
 | |
| export const hasUserKeys = user =>
 | |
|   REQUIRED_USER_KEYS.reduce((acc, key) => acc || !!user[key], false);
 | 
