/
storage.go
60 lines (50 loc) · 1.75 KB
/
storage.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Copyright 2021 Hyperscale. All rights reserved.
// Use of this source code is governed by a MIT
// license that can be found in the LICENSE file.
package oauth2
import (
"errors"
"github.com/hyperscale-stack/security/user"
)
var (
ErrClientNotFound = errors.New("oauth2 client not found")
ErrAccessNotFound = errors.New("oauth2 access token not found")
ErrRefreshNotFound = errors.New("oauth2 refresh token not found")
ErrAuthorizeNotFound = errors.New("oauth2 authorize code not found")
ErrUserNotFound = errors.New("oauth2 user not found")
)
//go:generate mockery --name=ClientProvider --inpackage --case underscore
type ClientProvider interface {
SaveClient(Client) error
LoadClient(id string) (Client, error)
RemoveClient(id string) error
}
//go:generate mockery --name=AccessProvider --inpackage --case underscore
type AccessProvider interface {
SaveAccess(*AccessInfo) error
LoadAccess(token string) (*AccessInfo, error)
RemoveAccess(token string) error
}
//go:generate mockery --name=RefreshProvider --inpackage --case underscore
type RefreshProvider interface {
SaveRefresh(*AccessInfo) error
LoadRefresh(token string) (*AccessInfo, error)
RemoveRefresh(token string) error
}
//go:generate mockery --name=AuthorizeProvider --inpackage --case underscore
type AuthorizeProvider interface {
SaveAuthorize(*AuthorizeInfo) error
LoadAuthorize(code string) (*AuthorizeInfo, error)
RemoveAuthorize(code string) error
}
//go:generate mockery --name=UserProvider --inpackage --case underscore
type UserProvider interface {
LoadUser(id string) (user.User, error)
}
//go:generate mockery --name=StorageProvider --inpackage --case underscore
type StorageProvider interface {
ClientProvider
AccessProvider
RefreshProvider
AuthorizeProvider
}