/
session.go
33 lines (30 loc) · 1.01 KB
/
session.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package driver
import (
"context"
"encoding/json"
)
// Session is a copy of kivik.Session
type Session struct {
// Name is the name of the authenticated user.
Name string
// Roles is a list of roles the user belongs to.
Roles []string
// AuthenticationMethod is the authentication method that was used for this
// session.
AuthenticationMethod string
// AuthenticationDB is the user database against which authentication was
// performed.
AuthenticationDB string
// AuthenticationHandlers is a list of authentication handlers configured on
// the server.
AuthenticationHandlers []string
// RawResponse is the raw JSON response sent by the server, useful for
// custom backends which may provide additional fields.
RawResponse json.RawMessage
}
// Sessioner is an optional interface that a client may satisfy to provide
// access to the authenticated session information.
type Sessioner interface {
// Session returns information about the authenticated user.
Session(ctx context.Context) (*Session, error)
}