providers

package
v0.0.0-...-213c2e4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 12, 2016 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetAuthCallBackURL

func GetAuthCallBackURL(r *http.Request) string

GetAuthCallBackURL return back the auth callback url registered with the Provider

func GetProfileFromIDToken

func GetProfileFromIDToken(authResponse *AuthResponse, idToken string) error

GetProfileFromIDToken gets user profile from IDToken provided by Google

Types

type AuthResponse

type AuthResponse struct {
	Name          string `json:"name"`
	Email         string `json:"email"`
	EmailVerified bool   `json:"email_verified"`
}

AuthResponse holds the data of a User after successful Authorization

type Github

type Github struct {
	// contains filtered or unexported fields
}

Github for Github Authentication

func (*Github) Data

func (provider *Github) Data() *ProviderData

Data provides provider specific data

func (*Github) GetProfileDataFromAccessToken

func (provider *Github) GetProfileDataFromAccessToken(accessToken string) (*AuthResponse, error)

GetProfileDataFromAccessToken gets user profile from access token

func (*Github) RedeemCode

func (provider *Github) RedeemCode(code string, redirectURL string, state string) (*RedeemResponse, error)

RedeemCode gets access token and refresh token using the code provided

func (*Github) RedirectToAuthPage

func (provider *Github) RedirectToAuthPage(w http.ResponseWriter, r *http.Request, state string)

RedirectToAuthPage redirects to Github Auth page

func (*Github) RefreshAccessToken

func (provider *Github) RefreshAccessToken(refreshToken string) (*RedeemResponse, error)

RefreshAccessToken fetch new access token using the offline refresh token

type GoogleProvider

type GoogleProvider struct {
	// contains filtered or unexported fields
}

GoogleProvider for Google Authorization

func (*GoogleProvider) Data

func (provider *GoogleProvider) Data() *ProviderData

Data provides provider specific data

func (*GoogleProvider) GetProfileDataFromAccessToken

func (provider *GoogleProvider) GetProfileDataFromAccessToken(accessToken string) (*AuthResponse, error)

GetProfileDataFromAccessToken gets user profile from access token

func (*GoogleProvider) RedeemCode

func (provider *GoogleProvider) RedeemCode(code string, redirectURL string, state string) (*RedeemResponse, error)

RedeemCode gets access token and refresh token using the code provided

func (*GoogleProvider) RedirectToAuthPage

func (provider *GoogleProvider) RedirectToAuthPage(w http.ResponseWriter, r *http.Request, state string)

RedirectToAuthPage redirects to Google Auth page

func (*GoogleProvider) RefreshAccessToken

func (provider *GoogleProvider) RefreshAccessToken(refreshToken string) (*RedeemResponse, error)

RefreshAccessToken fetch new access token using the offline refresh token

type Provider

type Provider interface {
	Data() *ProviderData
	RedirectToAuthPage(http.ResponseWriter, *http.Request, string)
	RedeemCode(string, string, string) (*RedeemResponse, error)
	GetProfileDataFromAccessToken(string) (*AuthResponse, error)
	RefreshAccessToken(string) (*RedeemResponse, error)
}

Provider interface for every provider available

func GetProvider

func GetProvider(providerName string) Provider

GetProvider returns appropriate Provider object

func NewGitHubProvider

func NewGitHubProvider() Provider

NewGitHubProvider gives new Github provider

func NewGoogleProvider

func NewGoogleProvider() Provider

NewGoogleProvider gives new Google provider

type ProviderData

type ProviderData struct {
	ProviderName string
	LoginURL     *url.URL
	RedeemURL    *url.URL
	ValidateURL  *url.URL
	ProfileURL   *url.URL
}

ProviderData holds data for specific providers

type RedeemResponse

type RedeemResponse struct {
	AccessToken  string    `json:"access_token"`
	RefreshToken string    `json:"refresh_token"`
	ExpiresOn    time.Time `json:"time"`
	IDToken      string    `json:"id_token"`
}

RedeemResponse holds the response after Redeeming the code provided by the Provider

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL