MCPcopy Create free account
hub / github.com/supabase/auth / createRefreshToken

Function createRefreshToken

internal/models/refresh_token.go:175–209  ·  view source on GitHub ↗
(tx *storage.Connection, user *User, oldToken *RefreshToken, params *GrantParams)

Source from the content-addressed store, hash-verified

173}
174
175func createRefreshToken(tx *storage.Connection, user *User, oldToken *RefreshToken, params *GrantParams) (*RefreshToken, error) {
176 token := &RefreshToken{
177 UserID: user.ID,
178 Token: crypto.SecureAlphanumeric(12),
179 Parent: "",
180 }
181 if oldToken != nil {
182 token.Parent = storage.NullString(oldToken.Token)
183 token.SessionId = oldToken.SessionId
184 }
185
186 if token.SessionId == nil {
187 session, err := NewSession(user.ID, params.FactorID)
188 if err != nil {
189 return nil, errors.Wrap(err, "error instantiating new session object")
190 }
191
192 session.ApplyGrantParams(params)
193
194 if err := tx.Create(session); err != nil {
195 return nil, errors.Wrap(err, "error creating new session")
196 }
197
198 token.SessionId = &session.ID
199 }
200
201 if err := tx.Create(token); err != nil {
202 return nil, errors.Wrap(err, "error creating refresh token")
203 }
204
205 if err := user.UpdateLastSignInAt(tx); err != nil {
206 return nil, errors.Wrap(err, "error update user`s last_sign_in field")
207 }
208 return token, nil
209}

Callers 2

GrantAuthenticatedUserFunction · 0.85
GrantRefreshTokenSwapFunction · 0.85

Calls 5

ApplyGrantParamsMethod · 0.95
SecureAlphanumericFunction · 0.92
NullStringTypeAlias · 0.92
NewSessionFunction · 0.85
UpdateLastSignInAtMethod · 0.80

Tested by

no test coverage detected