|
@@ -2,6 +2,7 @@ package usermanager
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
+ "log"
|
|
|
"net/http"
|
|
|
"net/url"
|
|
|
"qfw/util"
|
|
@@ -23,14 +24,39 @@ const (
|
|
|
//用户的accesstoken维护,每个用户分配一个 应用id=appid,用户密钥=key
|
|
|
func GetAccessToken(w http.ResponseWriter, r *http.Request) {
|
|
|
defer util.Catch()
|
|
|
+ err := r.ParseForm()
|
|
|
+ if err != nil {
|
|
|
+ log.Println("parse1", err.Error())
|
|
|
+ }
|
|
|
+ err = r.ParseMultipartForm(20480)
|
|
|
+ if err != nil {
|
|
|
+ log.Println("parse2", err.Error())
|
|
|
+ }
|
|
|
d := JSON{}
|
|
|
appid := r.FormValue("appid")
|
|
|
key := r.FormValue("key")
|
|
|
+ if appid == "" {
|
|
|
+ appid = r.PostFormValue("appid")
|
|
|
+ }
|
|
|
+ if key == "" {
|
|
|
+ key = r.PostFormValue("key")
|
|
|
+ }
|
|
|
if appid != "" && key != "" {
|
|
|
- res, b := Mgo.FindOneByField("user", &map[string]interface{}{
|
|
|
- "appid": appid,
|
|
|
- "key": key,
|
|
|
- }, `{"plan":1}`)
|
|
|
+ var res *map[string]interface{}
|
|
|
+ b := false
|
|
|
+ nt := 0
|
|
|
+ for nt < 4 {
|
|
|
+ res, b = Mgo.FindOneByField("user", &map[string]interface{}{
|
|
|
+ "appid": appid,
|
|
|
+ "key": key,
|
|
|
+ }, `{"plan":1}`)
|
|
|
+ if b && res != nil && *res != nil {
|
|
|
+ break
|
|
|
+ } else {
|
|
|
+ nt++
|
|
|
+ time.Sleep(1 * time.Second)
|
|
|
+ }
|
|
|
+ }
|
|
|
if b && res != nil && *res != nil {
|
|
|
GetDataMapLock.Lock()
|
|
|
appidLock := GetDataMap[appid]
|
|
@@ -73,7 +99,12 @@ func GetAccessToken(w http.ResponseWriter, r *http.Request) {
|
|
|
d["code"] = CODE_E3
|
|
|
d["msg"] = MSG_E3
|
|
|
}
|
|
|
+ } else {
|
|
|
+ log.Println("查询用户信息为空", appid, key)
|
|
|
}
|
|
|
+
|
|
|
+ } else {
|
|
|
+ log.Println("参数获取为空", appid, key)
|
|
|
}
|
|
|
if len(d) == 0 {
|
|
|
d["code"] = CODE_E2
|