세션 provider, consumer 인터페이스 변경

This commit is contained in:
2024-04-23 11:19:08 +09:00
parent 4aa071441b
commit fba613f83c
4 changed files with 38 additions and 12 deletions

View File

@ -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
}