9a7a65f05e
* auth provider mock interface * Auth Provider Options * Implement API Server Auth Package * Add weh utils * Add Login URL * Auth Provider Options * Add auth provider scope and setting token in cookie * Remove auth_login_url flag Co-authored-by: Asim Aslam <asim@aslam.me> Co-authored-by: Ben Toogood <ben@micro.mu>
48 lines
945 B
Go
48 lines
945 B
Go
package provider
|
|
|
|
// Option returns a function which sets an option
|
|
type Option func(*Options)
|
|
|
|
// Options a provider can have
|
|
type Options struct {
|
|
// ClientID is the application's ID.
|
|
ClientID string
|
|
// ClientSecret is the application's secret.
|
|
ClientSecret string
|
|
// Endpoint for the provider
|
|
Endpoint string
|
|
// Redirect url incase of UI
|
|
Redirect string
|
|
// Scope of the oauth request
|
|
Scope string
|
|
}
|
|
|
|
// Credentials is an option which sets the client id and secret
|
|
func Credentials(id, secret string) Option {
|
|
return func(o *Options) {
|
|
o.ClientID = id
|
|
o.ClientSecret = secret
|
|
}
|
|
}
|
|
|
|
// Endpoint sets the endpoint option
|
|
func Endpoint(e string) Option {
|
|
return func(o *Options) {
|
|
o.Endpoint = e
|
|
}
|
|
}
|
|
|
|
// Redirect sets the Redirect option
|
|
func Redirect(r string) Option {
|
|
return func(o *Options) {
|
|
o.Redirect = r
|
|
}
|
|
}
|
|
|
|
// Scope sets the oauth scope
|
|
func Scope(s string) Option {
|
|
return func(o *Options) {
|
|
o.Scope = s
|
|
}
|
|
}
|