MCPcopy Create free account
hub / github.com/netlify/gotrue / issueRefreshToken

Method issueRefreshToken

api/token.go:182–214  ·  view source on GitHub ↗
(ctx context.Context, conn *storage.Connection, user *models.User)

Source from the content-addressed store, hash-verified

180}
181
182func (a *API) issueRefreshToken(ctx context.Context, conn *storage.Connection, user *models.User) (*AccessTokenResponse, error) {
183 config := a.getConfig(ctx)
184
185 now := time.Now()
186 user.LastSignInAt = &now
187
188 var tokenString string
189 var refreshToken *models.RefreshToken
190
191 err := conn.Transaction(func(tx *storage.Connection) error {
192 var terr error
193 refreshToken, terr = models.GrantAuthenticatedUser(tx, user)
194 if terr != nil {
195 return internalServerError("Database error granting user").WithInternalError(terr)
196 }
197
198 tokenString, terr = generateAccessToken(user, time.Second*time.Duration(config.JWT.Exp), config.JWT.Secret)
199 if terr != nil {
200 return internalServerError("error generating jwt token").WithInternalError(terr)
201 }
202 return nil
203 })
204 if err != nil {
205 return nil, err
206 }
207
208 return &AccessTokenResponse{
209 Token: tokenString,
210 TokenType: "bearer",
211 ExpiresIn: config.JWT.Exp,
212 RefreshToken: refreshToken.Token,
213 }, nil
214}
215
216func (a *API) setCookieToken(config *conf.Configuration, tokenString string, session bool, w http.ResponseWriter) error {
217 exp := time.Second * time.Duration(config.Cookie.Duration)

Callers 3

VerifyMethod · 0.95

Calls 6

getConfigMethod · 0.95
GrantAuthenticatedUserFunction · 0.92
internalServerErrorFunction · 0.85
generateAccessTokenFunction · 0.85
TransactionMethod · 0.80
WithInternalErrorMethod · 0.45

Tested by

no test coverage detected