mirror of
https://github.com/TecharoHQ/anubis.git
synced 2026-04-18 06:15:00 +00:00
@@ -94,18 +94,19 @@ func (s *Server) getTokenKeyfunc() jwt.Keyfunc {
|
|||||||
func (s *Server) challengeFor(r *http.Request) (*challenge.Challenge, error) {
|
func (s *Server) challengeFor(r *http.Request) (*challenge.Challenge, error) {
|
||||||
ckies := r.CookiesNamed(anubis.TestCookieName)
|
ckies := r.CookiesNamed(anubis.TestCookieName)
|
||||||
|
|
||||||
|
if len(ckies) == 0 {
|
||||||
|
return s.issueChallenge(r.Context(), r)
|
||||||
|
}
|
||||||
|
|
||||||
j := store.JSON[challenge.Challenge]{Underlying: s.store}
|
j := store.JSON[challenge.Challenge]{Underlying: s.store}
|
||||||
|
|
||||||
for _, ckie := range ckies {
|
ckie := ckies[0]
|
||||||
chall, err := j.Get(r.Context(), "challenge:"+ckie.Value)
|
chall, err := j.Get(r.Context(), "challenge:"+ckie.Value)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return &chall, nil
|
return &chall, nil
|
||||||
}
|
|
||||||
|
|
||||||
return s.issueChallenge(r.Context(), r)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) issueChallenge(ctx context.Context, r *http.Request) (*challenge.Challenge, error) {
|
func (s *Server) issueChallenge(ctx context.Context, r *http.Request) (*challenge.Challenge, error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user