세션 provider, consumer 인터페이스 변경
This commit is contained in:
@ -64,7 +64,7 @@ func (p *provider_mongo) New(input *Authorization) (string, error) {
|
||||
return string(storagekey_to_publickey(sk)), err
|
||||
}
|
||||
|
||||
func (p *provider_mongo) Invalidate(acc primitive.ObjectID) error {
|
||||
func (p *provider_mongo) RevokeAll(acc primitive.ObjectID) error {
|
||||
_, err := p.mongoClient.Delete(session_collection_name, bson.M{
|
||||
"_id": acc,
|
||||
})
|
||||
@ -338,7 +338,23 @@ func (c *consumer_mongo) Touch(pk string) (Authorization, error) {
|
||||
return *si.Auth, nil
|
||||
}
|
||||
|
||||
func (c *consumer_mongo) IsInvalidated(id primitive.ObjectID) bool {
|
||||
func (c *consumer_mongo) Revoke(pk string) {
|
||||
sk := publickey_to_storagekey(publickey(pk))
|
||||
_, err := c.mongoClient.Delete(session_collection_name, bson.M{
|
||||
"key": sk,
|
||||
})
|
||||
|
||||
if err == nil {
|
||||
for id, v := range c.ids {
|
||||
if v == sk {
|
||||
delete(c.ids, id)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (c *consumer_mongo) IsRevoked(id primitive.ObjectID) bool {
|
||||
_, ok := c.ids[id]
|
||||
return !ok
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user