mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-11 13:29:12 +00:00
- **feat(did): add assertion type to DID spec** - **refactor: update build process to include assets generation** - **refactor: update import paths for to** - **feat: introduce new authentication state management** - **feat: add current account route** - **feat: implement global toasts with custom HTML** - **refactor: remove unused session code** - **feat: add config.json to embedded assets** - **refactor: remove unused dependency on gorilla/sessions** - **refactor: simplify session management and remove unnecessary fields** - **fix: remove unnecessary import for unused protobuf types** - **feat: introduce separate HTTP contexts for Highway and DWN** - **fix(keeper): Handle missing controller during initial sync** - **refactor: extract DWN configuration from DWNContext** - **feat: add view route** - **fix: update configuration file name in embed.go** - **feat: improve vaultindex page loading experience** - **feat(hway): add highway context to echo context** - **chore(deps): bump onsonr/crypto from 1.32.0 to 1.33.0** - **refactor: rename DWNSessionMiddleware to WebNodeSessionMiddleware** - **feat: rename client API to web node API** - **refactor: separate API and view routes** - **refactor: remove unused build targets in Makefile** - **feat: add Devbox integration to container** - **feat: add wasm support for dwn** - **refactor: update module proto import** - **feat: add default first and third party caveats** - **feat: Add target vault allocation mechanism** - **refactor: introduce standardized session cookie handling** - **fix: update service worker installation and ready states** - **feat: add worker handlers** - **feat: Enable SSH access to devcontainer** - **refactor: rename HighwayContext to HwayContext** - **feat: add block expiration calculation to sonr context** - **feat: remove config from cookie and header** - **feat(gen): Remove generated code for IPFS, Motr and Sonr** - **refactor: remove unused createMotrConfig function** - **feat: add project analytics with Repobeats** - **docs: Remove component details from README** - **refactor: rename SetConfig to injectConfig**
81 lines
2.9 KiB
Go
81 lines
2.9 KiB
Go
package handlers
|
|
|
|
import (
|
|
"github.com/go-webauthn/webauthn/protocol"
|
|
"github.com/labstack/echo/v4"
|
|
|
|
"github.com/onsonr/sonr/internal/orm"
|
|
)
|
|
|
|
// ╭───────────────────────────────────────────────────────────╮
|
|
// │ Login Handlers │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
func (a *authAPI) LoginSubjectCheck(e echo.Context) error {
|
|
return e.JSON(200, "HandleCredentialAssertion")
|
|
}
|
|
|
|
func (a *authAPI) LoginSubjectStart(e echo.Context) error {
|
|
opts := &protocol.PublicKeyCredentialRequestOptions{
|
|
UserVerification: "preferred",
|
|
Challenge: []byte("challenge"),
|
|
}
|
|
return e.JSON(200, opts)
|
|
}
|
|
|
|
func (a *authAPI) LoginSubjectFinish(e echo.Context) error {
|
|
var crr protocol.CredentialAssertionResponse
|
|
if err := e.Bind(&crr); err != nil {
|
|
return err
|
|
}
|
|
return e.JSON(200, crr)
|
|
}
|
|
|
|
// ╭───────────────────────────────────────────────────────────╮
|
|
// │ Register Handlers │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
func (a *authAPI) RegisterSubjectCheck(e echo.Context) error {
|
|
subject := e.FormValue("subject")
|
|
return e.JSON(200, subject)
|
|
}
|
|
|
|
func (a *authAPI) RegisterSubjectStart(e echo.Context) error {
|
|
// Get subject and address
|
|
subject := e.FormValue("subject")
|
|
address := e.FormValue("address")
|
|
|
|
// Get challenge
|
|
chal, err := protocol.CreateChallenge()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return e.JSON(201, orm.NewCredentialCreationOptions(subject, address, chal))
|
|
}
|
|
|
|
func (a *authAPI) RegisterSubjectFinish(e echo.Context) error {
|
|
// Deserialize the JSON into a temporary struct
|
|
var ccr protocol.CredentialCreationResponse
|
|
if err := e.Bind(&ccr); err != nil {
|
|
return err
|
|
}
|
|
//
|
|
// // Parse the CredentialCreationResponse
|
|
// parsedData, err := ccr.Parse()
|
|
// if err != nil {
|
|
// return e.JSON(500, err.Error())
|
|
// }
|
|
//
|
|
// // Create the Credential
|
|
// // credential := orm.NewCredential(parsedData, e.Request().Host, "")
|
|
return e.JSON(201, ccr)
|
|
}
|
|
|
|
// ╭───────────────────────────────────────────────────────────╮
|
|
// │ Group Structures │
|
|
// ╰───────────────────────────────────────────────────────────╯
|
|
|
|
type authAPI struct{}
|
|
|
|
var Auth = new(authAPI)
|