Registration form for new users

This commit is contained in:
Simon Martens
2025-05-23 16:26:03 +02:00
parent f641a32cb5
commit c44467f229
22 changed files with 805 additions and 9 deletions

View File

@@ -0,0 +1,47 @@
package dbmodels
import (
"fmt"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/tools/types"
)
func CreateAccessToken(
app core.App,
userID string,
url string,
duration time.Duration,
) (*AccessToken, error) {
collection, err := app.FindCollectionByNameOrId(ACCESS_TOKENS_TABLE)
if err != nil {
return nil, fmt.Errorf("failed to find '%s' collection: %w", ACCESS_TOKENS_TABLE, err)
}
accesTokenClear, err := generateSecureRandomToken(secureTokenByteLength)
if err != nil {
return nil, fmt.Errorf("failed to generate session token: %w", err)
}
csrfTokenClear, err := generateSecureRandomToken(secureTokenByteLength)
if err != nil {
return nil, fmt.Errorf("failed to generate CSRF token: %w", err)
}
record := core.NewRecord(collection)
token := NewAccessToken(record)
token.SetToken(accesTokenClear)
token.SetCSRF(csrfTokenClear)
token.SetUser(userID)
token.SetURL(url)
token.SetStatus(TOKEN_STATUS_VALUES[0]) // Active
token.SetExpires(types.NowDateTime().Add(duration))
if err := app.Save(record); err != nil {
return nil, fmt.Errorf("failed to save access token record: %w", err)
}
return token, nil
}