@@ -8,15 +8,19 @@ import (
8
8
"github.com/oidc-mytoken/api/v0"
9
9
)
10
10
11
- func (my * MytokenServer ) GetMytoken (req interface {}) (string , error ) {
11
+ func (my * MytokenServer ) GetMytoken (req interface {}) (string , * string , error ) {
12
12
var resp api.MytokenResponse
13
13
if err := doHTTPRequest ("POST" , my .MytokenEndpoint , req , & resp ); err != nil {
14
- return "" , err
14
+ return "" , nil , err
15
+ }
16
+ var mtUpdate * string
17
+ if resp .TokenUpdate != nil {
18
+ mtUpdate = & resp .TokenUpdate .Mytoken
15
19
}
16
- return resp .Mytoken , nil
20
+ return resp .Mytoken , mtUpdate , nil
17
21
}
18
22
19
- func (my * MytokenServer ) GetMytokenByMytoken (mytoken , issuer string , restrictions api.Restrictions , capabilities , subtokenCapabilities api.Capabilities , responseType , name string ) (string , error ) {
23
+ func (my * MytokenServer ) GetMytokenByMytoken (mytoken * string , issuer string , restrictions api.Restrictions , capabilities , subtokenCapabilities api.Capabilities , responseType , name string ) (string , error ) {
20
24
req := api.MytokenFromMytokenRequest {
21
25
GeneralMytokenRequest : api.GeneralMytokenRequest {
22
26
Issuer : issuer ,
@@ -27,17 +31,22 @@ func (my *MytokenServer) GetMytokenByMytoken(mytoken, issuer string, restriction
27
31
Name : name ,
28
32
ResponseType : responseType ,
29
33
},
30
- Mytoken : mytoken ,
34
+ Mytoken : * mytoken ,
35
+ }
36
+ mt , mtUpdate , err := my .GetMytoken (req )
37
+ if mtUpdate != nil {
38
+ * mytoken = * mtUpdate
31
39
}
32
- return my . GetMytoken ( req )
40
+ return mt , err
33
41
}
34
42
35
43
func (my * MytokenServer ) GetMytokenByTransferCode (transferCode string ) (string , error ) {
36
44
req := api.ExchangeTransferCodeRequest {
37
45
GrantType : api .GrantTypeTransferCode ,
38
46
TransferCode : transferCode ,
39
47
}
40
- return my .GetMytoken (req )
48
+ mt , _ , err := my .GetMytoken (req )
49
+ return mt , err
41
50
}
42
51
43
52
type PollingCallbacks struct {
@@ -116,7 +125,7 @@ func (my *MytokenServer) PollOnce(pollingCode string) (string, bool, error) {
116
125
PollingCode : pollingCode ,
117
126
}
118
127
119
- tok , err := my .GetMytoken (req )
128
+ tok , _ , err := my .GetMytoken (req )
120
129
if err == nil {
121
130
return tok , true , nil
122
131
}
0 commit comments