mirror of
https://github.com/miniflux/v2.git
synced 2025-08-21 18:11:09 +00:00
Add OAuth2 authentication
This commit is contained in:
parent
9877051f12
commit
cc6d272eb7
351 changed files with 81664 additions and 55 deletions
33
server/oauth2/manager.go
Normal file
33
server/oauth2/manager.go
Normal file
|
@ -0,0 +1,33 @@
|
|||
// Copyright 2017 Frédéric Guillot. All rights reserved.
|
||||
// Use of this source code is governed by the Apache 2.0
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package oauth2
|
||||
|
||||
import "errors"
|
||||
|
||||
// Manager handles OAuth2 providers.
|
||||
type Manager struct {
|
||||
providers map[string]Provider
|
||||
}
|
||||
|
||||
// Provider returns the given provider.
|
||||
func (m *Manager) Provider(name string) (Provider, error) {
|
||||
if provider, found := m.providers[name]; found {
|
||||
return provider, nil
|
||||
}
|
||||
|
||||
return nil, errors.New("oauth2 provider not found")
|
||||
}
|
||||
|
||||
// AddProvider add a new OAuth2 provider.
|
||||
func (m *Manager) AddProvider(name string, provider Provider) {
|
||||
m.providers[name] = provider
|
||||
}
|
||||
|
||||
// NewManager returns a new Manager.
|
||||
func NewManager(clientID, clientSecret, redirectURL string) *Manager {
|
||||
m := &Manager{providers: make(map[string]Provider)}
|
||||
m.AddProvider("google", newGoogleProvider(clientID, clientSecret, redirectURL))
|
||||
return m
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue