...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package kivikd
16
17 import (
18 "github.com/go-kivik/kivik/v4/x/kivikd/authdb"
19 "github.com/go-kivik/kivik/v4/x/kivikd/cookies"
20 )
21
22
23
24 func (s *Service) CreateAuthToken(name, salt string, time int64) (string, error) {
25 secret := s.getAuthSecret()
26 return authdb.CreateAuthToken(name, salt, secret, time), nil
27 }
28
29
30 func (s *Service) ValidateCookie(user *authdb.UserContext, cookie string) (bool, error) {
31 name, t, err := cookies.DecodeCookie(cookie)
32 if err != nil {
33 return false, err
34 }
35 token, err := s.CreateAuthToken(name, user.Salt, t)
36 if err != nil {
37 return false, err
38 }
39 return token == cookie, nil
40 }
41
View as plain text