func (c *AuthorizeExplicitGrantHandler) IssueAuthorizeCode(ctx context.Context, req *http.Request, ar fosite.AuthorizeRequester, resp fosite.AuthorizeResponder) error { code, signature, err := c.AuthorizeCodeStrategy.GenerateAuthorizeCode(ctx, ar) if err != nil { return errors.Wrap(fosite.ErrServerError, err.Error()) } if err := c.AuthorizeCodeGrantStorage.CreateAuthorizeCodeSession(ctx, signature, ar); err != nil { return errors.Wrap(fosite.ErrServerError, err.Error()) } ar.GetSession().SetExpiresAt(fosite.AuthorizeCode, time.Now().Add(c.AuthCodeLifespan)) resp.AddQuery("code", code) resp.AddQuery("state", ar.GetState()) resp.AddQuery("scope", strings.Join(ar.GetGrantedScopes(), " ")) ar.SetResponseTypeHandled("code") return nil }