authorizer/server/session/inMemoryStore.go
Lakhan Samani 27264c6e29
Implement login resolver (#15)
* add sign_up_method to users table

* add session store

* implement login resolver
2021-07-15 00:13:19 +05:30

42 lines
727 B
Go

package session
import "sync"
type InMemoryStore struct {
mu sync.Mutex
store map[string]string
}
func (c *InMemoryStore) AddToken(userId, token string) {
c.mu.Lock()
// delete sessions > 500 // not recommended for production
if len(c.store) >= 500 {
c.store = make(map[string]string)
}
c.store[userId] = token
c.mu.Unlock()
}
func (c *InMemoryStore) DeleteToken(userId string) {
c.mu.Lock()
delete(c.store, userId)
c.mu.Unlock()
}
func (c *InMemoryStore) ClearStore() {
c.mu.Lock()
c.store = make(map[string]string)
c.mu.Unlock()
}
func (c *InMemoryStore) GetToken(userId string) string {
token := ""
c.mu.Lock()
if val, ok := c.store[userId]; ok {
token = val
}
c.mu.Unlock()
return token
}