From 44cb8512c9881687e091cca589a0adcb9f72fa7a Mon Sep 17 00:00:00 2001 From: Niall Sheridan Date: Sat, 4 Feb 2017 23:55:31 +0000 Subject: Remove the oauth_callback_url config option Infer the redirect url from the request instead --- server/auth/provider.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'server/auth/provider.go') diff --git a/server/auth/provider.go b/server/auth/provider.go index 06dc1c9..d4a8e58 100644 --- a/server/auth/provider.go +++ b/server/auth/provider.go @@ -1,11 +1,16 @@ package auth -import "golang.org/x/oauth2" +import ( + "fmt" + "net/http" + + "golang.org/x/oauth2" +) // Provider is an abstraction of different auth methods. type Provider interface { Name() string - StartSession(string) *Session + StartSession(string, *http.Request) *Session Exchange(string) (*oauth2.Token, error) Username(*oauth2.Token) string Valid(*oauth2.Token) bool @@ -28,3 +33,12 @@ func (s *Session) Authorize(provider Provider, code string) error { s.Token = t return nil } + +// Oauth2RedirectURL returns an OAuth redirect_uri for this request. +func Oauth2RedirectURL(r *http.Request) string { + protocol := "http" + if r.TLS != nil { + protocol = "https" + } + return fmt.Sprintf("%s://%s/auth/callback", protocol, r.Host) +} -- cgit v1.2.3