Browse Source

feat(chiauth): add GetJWS(r) helper

main
AJ ONeal 2 years ago
parent
commit
97d0f2eec0
No known key found for this signature in database GPG Key ID: 562702827EF68D87
  1. 5
      README.md
  2. 7
      chiauth/chiauth.go
  3. 6
      examples/server.go

5
README.md

@ -39,9 +39,8 @@ func main() {
r.Use(tokenVerifier)
r.Post("/api/users/profile", func(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
jws, ok := ctx.Value(chiauth.JWSKey).(*libauth.JWS)
if !ok || !jws.Trusted {
jws := chiauth.GetJWS(r)
if nil == jws || !jws.Trusted {
http.Error(w, "Unauthorized", http.StatusUnauthorized)
return
}

7
chiauth/chiauth.go

@ -88,3 +88,10 @@ func NewTokenVerifier(opts VerificationParams) func(http.Handler) http.Handler {
})
}
}
// GetJWS retrieves *libauth.JWS from r.Context()
func GetJWS(r *http.Request) *libauth.JWS {
ctx := r.Context()
jws, _ := ctx.Value(JWSKey).(*libauth.JWS)
return jws
}

6
examples/server.go

@ -10,7 +10,6 @@ import (
"github.com/go-chi/chi/v5"
"git.rootprojects.org/root/keypairs/keyfetch"
"git.rootprojects.org/root/libauth"
"git.rootprojects.org/root/libauth/chiauth"
)
@ -38,9 +37,8 @@ func main() {
r.Use(tokenVerifier)
r.Post("/api/users/profile", func(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
jws, ok := ctx.Value(chiauth.JWSKey).(*libauth.JWS)
if !ok || !jws.Trusted {
jws := chiauth.GetJWS(r)
if nil == jws || !jws.Trusted {
http.Error(w, "Unauthorized", http.StatusUnauthorized)
return
}

Loading…
Cancel
Save