瀏覽代碼

feat:保持登录时间调整

wangshan 2 年之前
父節點
當前提交
c547a7740e
共有 3 個文件被更改,包括 50 次插入72 次删除
  1. 33 66
      src/jfw/front/front.go
  2. 17 5
      src/jfw/front/login.go
  3. 0 1
      src/jfw/front/websocket.go

+ 33 - 66
src/jfw/front/front.go

@@ -1,40 +1,39 @@
 package front
 
 import (
-	"fmt"
-	"jy/src/jfw/config"
-	"jy/src/jfw/jyutil"
-	"jy/src/jfw/qrmanager"
-	"jy/src/jfw/tag"
-	"jy/src/jfw/wx"
-	"log"
-	"math/rand"
-	"net/http"
-	"net/url"
-	"regexp"
-	"strconv"
-	"strings"
-	"sync"
-	"time"
-
-	"bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
-
-	util "app.yhyue.com/moapp/jybase/common"
-	. "app.yhyue.com/moapp/jybase/date"
-	"app.yhyue.com/moapp/jybase/encrypt"
-	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
-	"app.yhyue.com/moapp/jypkg/public"
-
-	elastic "app.yhyue.com/moapp/jybase/esv1"
-	"app.yhyue.com/moapp/jybase/redis"
-
-	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
-	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
-	mgdb "app.yhyue.com/moapp/jybase/mongodb"
-	. "app.yhyue.com/moapp/jypkg/identity"
-	"github.com/SKatiyar/qr"
-	"go.mongodb.org/mongo-driver/bson"
-	"go.mongodb.org/mongo-driver/bson/primitive"
+    "fmt"
+    "jy/src/jfw/config"
+    "jy/src/jfw/jyutil"
+    "jy/src/jfw/qrmanager"
+    "jy/src/jfw/tag"
+    "jy/src/jfw/wx"
+    "log"
+    "math/rand"
+    "net/url"
+    "regexp"
+    "strconv"
+    "strings"
+    "sync"
+    "time"
+
+    "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/pb"
+
+    util "app.yhyue.com/moapp/jybase/common"
+    . "app.yhyue.com/moapp/jybase/date"
+    "app.yhyue.com/moapp/jybase/encrypt"
+    "app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
+    "app.yhyue.com/moapp/jypkg/public"
+
+    elastic "app.yhyue.com/moapp/jybase/esv1"
+    "app.yhyue.com/moapp/jybase/redis"
+
+    "app.yhyue.com/moapp/jybase/go-xweb/httpsession"
+    "app.yhyue.com/moapp/jybase/go-xweb/xweb"
+    mgdb "app.yhyue.com/moapp/jybase/mongodb"
+    . "app.yhyue.com/moapp/jypkg/identity"
+    "github.com/SKatiyar/qr"
+    "go.mongodb.org/mongo-driver/bson"
+    "go.mongodb.org/mongo-driver/bson/primitive"
 )
 
 type Front struct {
@@ -839,22 +838,6 @@ func CreateSession(q map[string]interface{}, sess *httpsession.Session, typ stri
 	} else {
 		infoData["openid"] = ""
 	}
-	//设置登录过期时间--电脑端
-	if typ == "pc" {
-		//获取用户是否选择 下次自动登录 ;否:默认7天改成当天;是:session 保存一个月
-		//xweb.RootApp().SessionManager.SetMaxAge(time.Duration(10))
-		if sessionId := sess.Id(); string(sessionId) != "" {
-			keepSessionKey := fmt.Sprint("keepsession_%s", sessionId)
-			if b, err := redis.Exists("newother", keepSessionKey); b && err == nil {
-				var (
-					rw      http.ResponseWriter
-					expires = util.IntAllDef(config.Sysconfig["setSessionTimeout"], 24)
-				)
-				sess.SetMaxAge(time.Hour * time.Duration(expires))
-				http.SetCookie(rw, CookieRest(string(sessionId), "SESSIONID", expires))
-			}
-		}
-	}
 	//大会员动画 清除首页缓存
 	redis.Del("other", "jypcindex")
 	//清除企业基础架构给虚拟账号重置密码后需要重新登录的标识
@@ -862,22 +845,6 @@ func CreateSession(q map[string]interface{}, sess *httpsession.Session, typ stri
 	return true, person, infoData
 }
 
-// CookieRest  生成cookie
-func CookieRest(value, name string, expires int) *http.Cookie {
-	maxAge := int(time.Hour * time.Duration(expires) / time.Second) //1天,单位秒
-	expiresTime := time.Now().Add(time.Duration(expires) * time.Hour)
-	cookie := &http.Cookie{
-		Name:     name,
-		Value:    value,
-		Path:     "/",
-		HttpOnly: false,
-		MaxAge:   maxAge,
-		Expires:  expiresTime,
-		Domain:   httpsession.Domain,
-	}
-	return cookie
-}
-
 var bindUrl = "/front/account/phone/bind?mode=mergeBind"
 
 //微信跳转创建session

+ 17 - 5
src/jfw/front/login.go

@@ -39,12 +39,24 @@ func init() {
 	xweb.AddAction(&Login{})
 }
 
-func (l *Login) KeepLogin() error {
-	userId := l.GetString("")
-	if userId == "" {
-		return l.Redirect("/notin/page")
+func (l *Login) KeepLogin() {
+	//是否自动登录
+	var (
+		isAutoLogin, err = l.GetBool("isAutoLogin") //用户是否选择自动登录
+		result           map[string]bool
+	)
+	if err == nil {
+		result["flag"] = true
+		if isAutoLogin {
+			//重置用户登录信息保存时间(30天)
+			l.Session().SetMaxAge(time.Duration(qutil.IntAllDef(config.Sysconfig["setSessionTimeout"], 24)))
+		} else {
+			//重置用户登录信息保存时间(默认 24小时)
+			l.Session().SetMaxAge(time.Duration(qutil.IntAllDef(config.Sysconfig["sessionTimeout"], 24)))
+		}
+		l.App.SessionManager.Session(l.Request, l.ResponseWriter)
 	}
-	return l.Render("/login/phoneBind.html", &l.T)
+	l.ServeJson(result)
 }
 
 func (l *Login) PhoneBind() error {

+ 0 - 1
src/jfw/front/websocket.go

@@ -171,7 +171,6 @@ func LoginInfo(shareid, openid string, Sess interface{}) map[string]interface{}
 func ServeWss(conn *websocket.Conn) {
 	defer qutil.Catch()
 	conn.Sess = xweb.RootApp().SessionManager.Session(conn.R, conn.W)
-	log.Println("--------sessionid----------", conn.Sess.Id())
 	var shareIds string
 	for {
 		var shareData string