| 22 | } |
| 23 | |
| 24 | func (h *HandleHelper) IssueAccessToken(ctx context.Context, defaultLifespan time.Duration, requester fosite.AccessRequester, responder fosite.AccessResponder) (signature string, err error) { |
| 25 | token, signature, err := h.AccessTokenStrategy.GenerateAccessToken(ctx, requester) |
| 26 | if err != nil { |
| 27 | return "", err |
| 28 | } else if err := h.Storage.AccessTokenStorage().CreateAccessTokenSession(ctx, signature, requester.Sanitize([]string{})); err != nil { |
| 29 | return "", err |
| 30 | } |
| 31 | |
| 32 | responder.SetAccessToken(token) |
| 33 | responder.SetTokenType("bearer") |
| 34 | responder.SetExpiresIn(getExpiresIn(requester, fosite.AccessToken, defaultLifespan, time.Now().UTC())) |
| 35 | responder.SetScopes(requester.GetGrantedScopes()) |
| 36 | return signature, nil |
| 37 | } |
| 38 | |
| 39 | func getExpiresIn(r fosite.Requester, key fosite.TokenType, defaultLifespan time.Duration, now time.Time) time.Duration { |
| 40 | if r.GetSession().GetExpiresAt(key).IsZero() { |