mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-10 21:09:11 +00:00
- **feat: remove Hway deployment** - **feat: introduce session middleware for requests** - **refactor: update path imports to use new pkg folder** - **feat: add gRPC client for interacting with services** - **feat: remove grpc client and use REST api** - **refactor: move from to** - **feat: add client views endpoint** - **feat: add webauthn support** - **closes: #1124** - **refactor: Improve PR labeler configuration** - **feat: add milestone discussion template** - **feat: remove OKR tracking issue template** - **feat: use gorilla sessions for session management** - **refactor: move pubkey related code to** - **<no value>** - **refactor: remove unused identifier type** - **feat: integrate Macaroon Keeper with Service Module** - **refactor: rename worker routes for clarity**
62 lines
1.3 KiB
Go
62 lines
1.3 KiB
Go
package ctx
|
|
|
|
import "github.com/labstack/echo/v4"
|
|
|
|
type State string
|
|
|
|
const (
|
|
StateAuthenticated State = "authenticated"
|
|
StateUnauthenticated State = "unauthenticated"
|
|
StatePendingCredentials State = "pending_credentials"
|
|
StatePendingAssertion State = "pending_assertion"
|
|
StateDisabled State = "disabled"
|
|
StateDisconnected State = "disconnected"
|
|
)
|
|
|
|
func (s State) String() string {
|
|
return string(s)
|
|
}
|
|
|
|
func StateFromString(s string) State {
|
|
switch s {
|
|
case StateAuthenticated.String():
|
|
return StateAuthenticated
|
|
case StateUnauthenticated.String():
|
|
return StateUnauthenticated
|
|
case StatePendingCredentials.String():
|
|
return StatePendingCredentials
|
|
case StatePendingAssertion.String():
|
|
return StatePendingAssertion
|
|
case StateDisabled.String():
|
|
return StateDisabled
|
|
case StateDisconnected.String():
|
|
return StateDisconnected
|
|
default:
|
|
return State("")
|
|
}
|
|
}
|
|
|
|
func readSessionFromStore(c echo.Context, id string) (*session, error) {
|
|
sess, err := store.Get(c.Request(), id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return NewSessionFromValues(sess.Values), nil
|
|
}
|
|
|
|
func writeSessionToStore(
|
|
c echo.Context,
|
|
id string,
|
|
) error {
|
|
sess, err := store.Get(c.Request(), id)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
s := defaultSession(id, sess)
|
|
err = s.SaveHTTP(c)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|