...
1
21
22 package fosite
23
24 import (
25 "strings"
26 "time"
27 )
28
29 func NewAccessResponse() *AccessResponse {
30 return &AccessResponse{
31 Extra: map[string]interface{}{},
32 }
33 }
34
35 type AccessResponse struct {
36 Extra map[string]interface{}
37 AccessToken string
38 TokenType string
39 }
40
41 func (a *AccessResponse) SetScopes(scopes Arguments) {
42 a.SetExtra("scope", strings.Join(scopes, " "))
43 }
44
45 func (a *AccessResponse) SetExpiresIn(expiresIn time.Duration) {
46 a.SetExtra("expires_in", int64(expiresIn/time.Second))
47 }
48
49 func (a *AccessResponse) SetExtra(key string, value interface{}) {
50 a.Extra[key] = value
51 }
52
53 func (a *AccessResponse) GetExtra(key string) interface{} {
54 return a.Extra[key]
55 }
56
57 func (a *AccessResponse) SetAccessToken(token string) {
58 a.AccessToken = token
59 }
60
61 func (a *AccessResponse) SetTokenType(name string) {
62 a.TokenType = name
63 }
64
65 func (a *AccessResponse) GetAccessToken() string {
66 return a.AccessToken
67 }
68
69 func (a *AccessResponse) GetTokenType() string {
70 return a.TokenType
71 }
72
73 func (a *AccessResponse) ToMap() map[string]interface{} {
74 a.Extra["access_token"] = a.GetAccessToken()
75 a.Extra["token_type"] = a.GetTokenType()
76 return a.Extra
77 }
78
View as plain text