Saving token to DB

This commit is contained in:
2024-08-13 22:00:07 +02:00
parent 6b7ce5b719
commit e7f6983a22
4 changed files with 57 additions and 3 deletions

View File

@ -2,10 +2,12 @@ package main
import (
"encoding/json"
"fmt"
"myapp/internal/cards"
"myapp/internal/models"
"net/http"
"strconv"
"time"
"github.com/go-chi/chi/v5"
"github.com/stripe/stripe-go/v79"
@ -266,16 +268,32 @@ func (app *application) CreateAuthToken(w http.ResponseWriter, r *http.Request)
}
// generate the token
token, err := models.GenerateToken(user.ID, 24*time.Hour, models.ScopeAuthentication)
if err != nil {
app.errorLog.Println(err)
app.badRequest(w, r, err)
return
}
// save to DB
err = app.DB.InsertToken(token, user)
if err != nil {
app.errorLog.Println(err)
app.badRequest(w, r, err)
return
}
// send response
var payload struct {
Error bool `json:"error"`
Message string `json:"message"`
Error bool `json:"error"`
Message string `json:"message"`
Token *models.Token `json:"authentication_token"`
}
payload.Error = false
payload.Message = "Success!"
payload.Message = fmt.Sprintf("token for %s created", userInput.Email)
payload.Token = token
_ = app.writeJSON(w, http.StatusOK, payload)
}