From 884013090b1b56b207f644393865c6057c9999ca Mon Sep 17 00:00:00 2001 From: Niall Sheridan Date: Mon, 18 Apr 2016 22:11:39 +0100 Subject: Initial commit --- server/auth/provider.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 server/auth/provider.go (limited to 'server/auth/provider.go') diff --git a/server/auth/provider.go b/server/auth/provider.go new file mode 100644 index 0000000..ae512bd --- /dev/null +++ b/server/auth/provider.go @@ -0,0 +1,27 @@ +package auth + +import "golang.org/x/oauth2" + +type Provider interface { + Name() string + StartSession(string) *Session + Exchange(string) (*oauth2.Token, error) + Username(*oauth2.Token) string + Valid(*oauth2.Token) bool + Revoke(*oauth2.Token) error +} + +type Session struct { + AuthURL string + Token *oauth2.Token + State string +} + +func (s *Session) Authorize(provider Provider, code string) error { + t, err := provider.Exchange(code) + if err != nil { + return err + } + s.Token = t + return nil +} -- cgit v1.2.3