session consumer query함수 리턴 값의 애매함을 제거
This commit is contained in:
@ -2,6 +2,7 @@ package session
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
@ -243,46 +244,49 @@ func (c *consumer_redis) query_internal(sk storagekey) (*sessionRedis, error) {
|
||||
expireAt: time.Now().Add(ttl),
|
||||
}
|
||||
|
||||
if auth.Invalidated() {
|
||||
c.stages[0].deleted[sk] = si
|
||||
} else {
|
||||
if auth.Valid() {
|
||||
c.add_internal(sk, si)
|
||||
} else {
|
||||
c.stages[0].deleted[sk] = si
|
||||
}
|
||||
|
||||
return si, nil
|
||||
}
|
||||
|
||||
func (c *consumer_redis) Query(pk string) (Authorization, error) {
|
||||
var errRevoked = errors.New("session revoked")
|
||||
var errExpired = errors.New("session expired")
|
||||
|
||||
func (c *consumer_redis) Query(pk string) Authorization {
|
||||
c.lock.Lock()
|
||||
defer c.lock.Unlock()
|
||||
|
||||
sk := publickey_to_storagekey(publickey(pk))
|
||||
|
||||
if _, deleted := c.stages[0].deleted[sk]; deleted {
|
||||
return Authorization{}, nil
|
||||
return Authorization{}
|
||||
}
|
||||
|
||||
if _, deleted := c.stages[1].deleted[sk]; deleted {
|
||||
return Authorization{}, nil
|
||||
return Authorization{}
|
||||
}
|
||||
|
||||
si, err := c.query_internal(sk)
|
||||
if err != nil {
|
||||
logger.Println("session consumer query :", pk, err)
|
||||
return Authorization{}, err
|
||||
return Authorization{}
|
||||
}
|
||||
|
||||
if si == nil {
|
||||
logger.Println("session consumer query(si nil) :", pk, nil)
|
||||
return Authorization{}, nil
|
||||
return Authorization{}
|
||||
}
|
||||
|
||||
if time.Now().After(si.expireAt) {
|
||||
logger.Println("session consumer query(expired):", pk, nil)
|
||||
return Authorization{}, nil
|
||||
return Authorization{}
|
||||
}
|
||||
|
||||
return *si.Authorization, nil
|
||||
return *si.Authorization
|
||||
}
|
||||
|
||||
func (c *consumer_redis) Touch(pk string) (Authorization, error) {
|
||||
|
||||
Reference in New Issue
Block a user