Skip to content

Commit b347d9c

Browse files
committed
To optimize the implementation details
1 parent 217243c commit b347d9c

File tree

9 files changed

+175
-167
lines changed

9 files changed

+175
-167
lines changed

errors/error.go

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,12 @@ package errors
22

33
import "errors"
44

5+
// known errors
56
var (
6-
// ErrNilValue Nil Value
7-
ErrNilValue = errors.New("nil value")
8-
9-
// ErrInvalidRedirectURI invalid redirect uri
10-
ErrInvalidRedirectURI = errors.New("invalid redirect uri")
11-
12-
// ErrInvalidAuthorizeCode invalid authorize code
7+
ErrInvalidRedirectURI = errors.New("invalid redirect uri")
138
ErrInvalidAuthorizeCode = errors.New("invalid authorize code")
14-
15-
// ErrInvalidAccessToken invalid access token
16-
ErrInvalidAccessToken = errors.New("invalid access token")
17-
18-
// ErrInvalidRefreshToken invalid refresh token
19-
ErrInvalidRefreshToken = errors.New("invalid refresh token")
20-
21-
// ErrExpiredAccessToken expired access token
22-
ErrExpiredAccessToken = errors.New("expired access token")
23-
24-
// ErrExpiredRefreshToken expired refresh token
25-
ErrExpiredRefreshToken = errors.New("expired refresh token")
9+
ErrInvalidAccessToken = errors.New("invalid access token")
10+
ErrInvalidRefreshToken = errors.New("invalid refresh token")
11+
ErrExpiredAccessToken = errors.New("expired access token")
12+
ErrExpiredRefreshToken = errors.New("expired refresh token")
2613
)

errors/response.go

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,36 +10,18 @@ type Response struct {
1010
StatusCode int `json:"-"`
1111
}
1212

13+
// https://tools.ietf.org/html/rfc6749#section-5.2
1314
var (
14-
// ErrInvalidRequest invalid request
15-
ErrInvalidRequest = errors.New("invalid_request")
16-
17-
// ErrUnauthorizedClient unauthorized client
18-
ErrUnauthorizedClient = errors.New("unauthorized_client")
19-
20-
// ErrAccessDenied access denied
21-
ErrAccessDenied = errors.New("access_denied")
22-
23-
// ErrUnsupportedResponseType unsupported response type
15+
ErrInvalidRequest = errors.New("invalid_request")
16+
ErrUnauthorizedClient = errors.New("unauthorized_client")
17+
ErrAccessDenied = errors.New("access_denied")
2418
ErrUnsupportedResponseType = errors.New("unsupported_response_type")
25-
26-
// ErrInvalidScope invalid scope
27-
ErrInvalidScope = errors.New("invalid_scope")
28-
29-
// ErrServerError server error
30-
ErrServerError = errors.New("server_error")
31-
32-
// ErrTemporarilyUnavailable temporarily unavailable
33-
ErrTemporarilyUnavailable = errors.New("temporarily_unavailable")
34-
35-
// ErrInvalidClient invalid client
36-
ErrInvalidClient = errors.New("invalid_client")
37-
38-
// ErrInvalidGrant invalid grant
39-
ErrInvalidGrant = errors.New("invalid_grant")
40-
41-
// ErrUnsupportedGrantType unsupported grant type
42-
ErrUnsupportedGrantType = errors.New("unsupported_grant_type")
19+
ErrInvalidScope = errors.New("invalid_scope")
20+
ErrServerError = errors.New("server_error")
21+
ErrTemporarilyUnavailable = errors.New("temporarily_unavailable")
22+
ErrInvalidClient = errors.New("invalid_client")
23+
ErrInvalidGrant = errors.New("invalid_grant")
24+
ErrUnsupportedGrantType = errors.New("unsupported_grant_type")
4325
)
4426

4527
// Descriptions error description

manage.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,30 @@ type TokenGenerateRequest struct {
1818

1919
// Manager Authorization management interface
2020
type Manager interface {
21-
// GetClient Get the client information
21+
// Check the interface implementation
22+
CheckInterface() (err error)
23+
24+
// Get the client information
2225
GetClient(clientID string) (cli ClientInfo, err error)
2326

24-
// GenerateAuthToken Generate the authorization token(code)
27+
// Generate the authorization token(code)
2528
GenerateAuthToken(rt ResponseType, tgr *TokenGenerateRequest) (authToken TokenInfo, err error)
2629

27-
// GenerateAccessToken Generate the access token
30+
// Generate the access token
2831
GenerateAccessToken(rt GrantType, tgr *TokenGenerateRequest) (accessToken TokenInfo, err error)
2932

30-
// RefreshAccessToken Refreshing an access token
33+
// Refreshing an access token
3134
RefreshAccessToken(tgr *TokenGenerateRequest) (accessToken TokenInfo, err error)
3235

33-
// RemoveAccessToken Use the access token to delete the token information
36+
// Use the access token to delete the token information
3437
RemoveAccessToken(access string) (err error)
3538

36-
// RemoveRefreshToken Use the refresh token to delete the token information
39+
// Use the refresh token to delete the token information
3740
RemoveRefreshToken(refresh string) (err error)
3841

39-
// LoadAccessToken According to the access token for corresponding token information
42+
// According to the access token for corresponding token information
4043
LoadAccessToken(access string) (ti TokenInfo, err error)
4144

42-
// LoadRefreshToken According to the refresh token for corresponding token information
45+
// According to the refresh token for corresponding token information
4346
LoadRefreshToken(refresh string) (ti TokenInfo, err error)
4447
}

manage/config.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package manage
2+
3+
import "time"
4+
5+
// Config authorization configuration parameters
6+
type Config struct {
7+
// access token expiration time (in seconds)
8+
AccessTokenExp time.Duration
9+
// refresh token expiration time(in seconds)
10+
RefreshTokenExp time.Duration
11+
// whether to generate the refreshing token
12+
IsGenerateRefresh bool
13+
}
14+
15+
// default configs
16+
var (
17+
DefaultCodeExp = time.Minute * 10
18+
DefaultAuthorizeCodeTokenCfg = &Config{AccessTokenExp: time.Hour * 2, RefreshTokenExp: time.Hour * 24 * 3, IsGenerateRefresh: true}
19+
DefaultImplicitTokenCfg = &Config{AccessTokenExp: time.Hour * 1}
20+
DefaultPasswordTokenCfg = &Config{AccessTokenExp: time.Hour * 2, RefreshTokenExp: time.Hour * 24 * 7, IsGenerateRefresh: true}
21+
DefaultClientTokenCfg = &Config{AccessTokenExp: time.Hour * 2}
22+
DefaultRefreshTokenCfg = &Config{}
23+
)

manage/manage_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ func TestManager(t *testing.T) {
1414
Convey("Manager test", t, func() {
1515
manager := manage.NewDefaultManager()
1616
manager.MapClientStorage(store.NewTestClientStore())
17+
manager.MustTokenStorage(store.NewMemoryTokenStore())
18+
19+
Convey("CheckInterface test", func() {
20+
err := manager.CheckInterface()
21+
So(err, ShouldBeNil)
22+
})
1723

1824
Convey("GetClient test", func() {
1925
cli, err := manager.GetClient("1")
@@ -22,7 +28,6 @@ func TestManager(t *testing.T) {
2228
})
2329

2430
Convey("Token test", func() {
25-
manager.MustTokenStorage(store.NewMemoryTokenStore())
2631
testManager(manager)
2732
})
2833
})

0 commit comments

Comments
 (0)