24 lines
		
	
	
		
			511 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			511 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								module.exports = withAuthorizationPrefix
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const atob = require('atob-lite')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const REGEX_IS_BASIC_AUTH = /^[\w-]+:/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function withAuthorizationPrefix (authorization) {
							 | 
						||
| 
								 | 
							
								  if (/^(basic|bearer|token) /i.test(authorization)) {
							 | 
						||
| 
								 | 
							
								    return authorization
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  try {
							 | 
						||
| 
								 | 
							
								    if (REGEX_IS_BASIC_AUTH.test(atob(authorization))) {
							 | 
						||
| 
								 | 
							
								      return `basic ${authorization}`
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  } catch (error) { }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (authorization.split(/\./).length === 3) {
							 | 
						||
| 
								 | 
							
								    return `bearer ${authorization}`
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return `token ${authorization}`
							 | 
						||
| 
								 | 
							
								}
							 |