22 lines
		
	
	
		
			857 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			857 B
		
	
	
	
		
			Go
		
	
	
	
package goth
 | 
						|
 | 
						|
// Params is used to pass data to sessions for authorization. An existing
 | 
						|
// implementation, and the one most likely to be used, is `url.Values`.
 | 
						|
type Params interface {
 | 
						|
	Get(string) string
 | 
						|
}
 | 
						|
 | 
						|
// Session needs to be implemented as part of the provider package.
 | 
						|
// It will be marshaled and persisted between requests to "tie"
 | 
						|
// the start and the end of the authorization process with a
 | 
						|
// 3rd party provider.
 | 
						|
type Session interface {
 | 
						|
	// GetAuthURL returns the URL for the authentication end-point for the provider.
 | 
						|
	GetAuthURL() (string, error)
 | 
						|
	// Marshal generates a string representation of the Session for storing between requests.
 | 
						|
	Marshal() string
 | 
						|
	// Authorize should validate the data from the provider and return an access token
 | 
						|
	// that can be stored for later access to the provider.
 | 
						|
	Authorize(Provider, Params) (string, error)
 | 
						|
}
 |