Keep user tokens, fix user info loading

This commit is contained in:
2015-03-15 00:01:48 +07:00
parent aff38168b7
commit 954e140dfd
3 changed files with 19 additions and 5 deletions
+2 -2
View File
@@ -27,8 +27,8 @@ func authCallbackHandler(w http.ResponseWriter, r *http.Request) {
code := r.FormValue("code")
log.Printf("Got code %q\n", code)
if _, login, err := task.Authenticate(code); err == nil {
req.authorize(login)
if token, login, err := task.Authenticate(code); err == nil {
req.authorize(token, login)
} else {
panic(err)
}
+5 -1
View File
@@ -16,6 +16,7 @@ type (
r *http.Request
w http.ResponseWriter
sid string
token string
login string
}
statRequest struct {
@@ -32,16 +33,19 @@ type (
func parseRequest(w http.ResponseWriter, r *http.Request) (*request, *statRequest) {
sid := sessionID(w, r)
login, _ := redis.String(redisPool.Get().Do("HGET", "sessions", sid))
token, _ := redis.String(redisPool.Get().Do("HGET", "tokens", sid))
req := &request{
r: r,
w: w,
sid: sid,
token: token,
login: login,
}
return req, parseStatRequest(r)
}
func (r *request) authorize(login string) {
func (r *request) authorize(token, login string) {
redisPool.Get().Do("HSET", "tokens", r.sid, token)
redisPool.Get().Do("HSET", "sessions", r.sid, login)
}