25 lines
		
	
	
		
			542 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			542 B
		
	
	
	
		
			Go
		
	
	
	
package providers
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/bitly/oauth2_proxy/api"
 | 
						|
	"log"
 | 
						|
	"net/http"
 | 
						|
)
 | 
						|
 | 
						|
func validateToken(p Provider, access_token string,
 | 
						|
	header http.Header) bool {
 | 
						|
	if access_token == "" || p.Data().ValidateUrl == nil {
 | 
						|
		return false
 | 
						|
	}
 | 
						|
	url := p.Data().ValidateUrl.String()
 | 
						|
	if len(header) == 0 {
 | 
						|
		url = url + "?access_token=" + access_token
 | 
						|
	}
 | 
						|
	if resp, err := api.RequestUnparsedResponse(url, header); err != nil {
 | 
						|
		log.Printf("token validation request failed: %s", err)
 | 
						|
		return false
 | 
						|
	} else {
 | 
						|
		return resp.StatusCode == 200
 | 
						|
	}
 | 
						|
}
 |