♻️ Update the sign in web page to the latest API

This commit is contained in:
2024-06-24 23:54:45 +08:00
parent 1cf675b23a
commit 3f64747839
15 changed files with 245 additions and 167 deletions

View File

@ -36,7 +36,7 @@ func doAuthenticate(c *fiber.Ctx) error {
}
return c.JSON(fiber.Map{
"is_finished": ticket.IsAvailable(),
"is_finished": ticket.IsAvailable() == nil,
"ticket": ticket,
})
}
@ -68,7 +68,7 @@ func doMultiFactorAuthenticate(c *fiber.Ctx) error {
}
return c.JSON(fiber.Map{
"is_finished": ticket.IsAvailable(),
"is_finished": ticket.IsAvailable() == nil,
"ticket": ticket,
})
}

View File

@ -1,10 +1,29 @@
package api
import (
"fmt"
"git.solsynth.dev/hydrogen/passport/pkg/internal/services"
"github.com/gofiber/fiber/v2"
)
func getAvailableFactors(c *fiber.Ctx) error {
ticketId := c.QueryInt("ticketId", 0)
if ticketId <= 0 {
return fiber.NewError(fiber.StatusBadRequest, "must provide ticket id as a query parameter")
}
ticket, err := services.GetTicket(uint(ticketId))
if err != nil {
return fiber.NewError(fiber.StatusBadRequest, fmt.Sprintf("ticket was not found: %v", err))
}
factors, err := services.ListUserFactor(ticket.AccountID)
if err != nil {
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
}
return c.JSON(factors)
}
func requestFactorToken(c *fiber.Ctx) error {
id, _ := c.ParamsInt("factorId", 0)

View File

@ -55,7 +55,10 @@ func MapAPIs(app *fiber.App) {
api.Post("/users", doRegister)
api.Post("/auth", doAuthenticate)
api.Post("/auth/mfa", doMultiFactorAuthenticate)
api.Post("/auth/token", getToken)
api.Get("/auth/factors", getAvailableFactors)
api.Post("/auth/factors/:factorId", requestFactorToken)
realms := api.Group("/realms").Name("Realms API")