|  |  | @@ -23,7 +23,9 @@ func handler(w http.ResponseWriter, r *http.Request) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 	clientId := "dccb4b93-3f75-4775-a94a-da39216d7daf" |  |  |  | 	clientId := "dccb4b93-3f75-4775-a94a-da39216d7daf" | 
			
		
	
		
		
			
				
					
					|  |  |  | 	tenantId := "ceeae22e-f163-4ac9-b7c2-45972d3aed4f" |  |  |  | 	tenantId := "ceeae22e-f163-4ac9-b7c2-45972d3aed4f" | 
			
		
	
		
		
			
				
					
					|  |  |  | 	// redirectURI := "https://alias.spamasaurus.com/" |  |  |  | 	// redirectURI := "https://alias.spamasaurus.com/" | 
			
		
	
		
		
			
				
					
					|  |  |  | 	scopes := []string{"email"} |  |  |  | 	scopes := []string{"user.read"} | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 	ctx := context.Background() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	// confidential clients have a credential, such as a secret or a certificate |  |  |  | 	// confidential clients have a credential, such as a secret or a certificate | 
			
		
	
		
		
			
				
					
					|  |  |  | 	cred, err := confidential.NewCredFromSecret("client_secret") |  |  |  | 	cred, err := confidential.NewCredFromSecret("client_secret") | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -31,21 +33,21 @@ func handler(w http.ResponseWriter, r *http.Request) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		// TODO: handle error |  |  |  | 		// TODO: handle error | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	confidentialClient, err := confidential.New("https://login.microsoftonline.com/" + tenantId, clientId, cred) |  |  |  | 	confidentialClient, err := confidential.New("https://login.microsoftonline.com/"+tenantId, clientId, cred) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	if err != nil { |  |  |  | 	if err != nil { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		// TODO: handle error |  |  |  | 		// TODO: handle error | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 	result, err := confidentialClient.AcquireTokenSilent(context.TODO(), scopes) |  |  |  | 	result, err := confidentialClient.AcquireTokenSilent(ctx, scopes) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	if err != nil { |  |  |  | 	if err != nil { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		// cache miss, authenticate with another AcquireToken... method |  |  |  | 		// cache miss, authenticate with another AcquireToken... method | 
			
		
	
		
		
			
				
					
					|  |  |  | 		result, err = confidentialClient.AcquireTokenByCredential(context.TODO(), scopes) |  |  |  | 		result, err = confidentialClient.AcquireTokenByCredential(ctx, scopes) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		if err != nil { |  |  |  | 		if err != nil { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			// TODO: handle error |  |  |  | 			// TODO: handle error | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 	// accessToken := result.AccessToken |  |  |  | 	// accessToken := result.AccessToken | 
			
		
	
		
		
			
				
					
					|  |  |  | 	w.Write([]byte(fmt.Sprintf("Hello, %s\n", spew.Sdump(result.AccessToken)))) |  |  |  | 	w.Write([]byte(fmt.Sprintf("Hello, %s\n", spew.Sdump(result)))) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | func healthHandler(w http.ResponseWriter, r *http.Request) { |  |  |  | func healthHandler(w http.ResponseWriter, r *http.Request) { | 
			
		
	
	
		
		
			
				
					
					|  |  |   |