You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
711 B
22 lines
711 B
package models
|
|
|
|
// A Key contains a JWT secret and the limitations of it. There are two types of
|
|
// keys, single-user keys and wildcard keys. The former is used to authenticate
|
|
// a single user (e.g. the logbot) through an API while the latter is only for
|
|
// services that can be trusted to perform its own authentication (a frontend).
|
|
type Key struct {
|
|
ID string `bson:"_id"`
|
|
Name string `bson:"name"`
|
|
User string `bson:"user"`
|
|
Secret string `bson:"secret"`
|
|
}
|
|
|
|
// ValidForUser returns true if the key's user is the same as
|
|
// the user, or it's a wildcard key.
|
|
func (key *Key) ValidForUser(user string) bool {
|
|
return key.User == user || key.User == "*"
|
|
}
|
|
|
|
type KeyFilter struct {
|
|
UserID *string
|
|
}
|