邀请
This commit is contained in:
@@ -40,6 +40,18 @@ func NewTelephoneLoginLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Te
|
||||
}
|
||||
|
||||
func (l *TelephoneLoginLogic) TelephoneLogin(req *types.TelephoneLoginRequest, r *http.Request, ip string) (resp *types.LoginResponse, err error) {
|
||||
// 打印请求参数 (隐藏密码)
|
||||
l.Infow("TelephoneLogin 请求参数",
|
||||
logger.Field("telephone_area_code", req.TelephoneAreaCode),
|
||||
logger.Field("telephone", req.Telephone),
|
||||
logger.Field("has_password", req.Password != ""),
|
||||
logger.Field("has_code", req.TelephoneCode != ""),
|
||||
logger.Field("identifier", req.Identifier),
|
||||
logger.Field("ip", ip),
|
||||
logger.Field("user_agent", r.UserAgent()),
|
||||
logger.Field("login_type", req.LoginType),
|
||||
)
|
||||
|
||||
phoneNumber, err := phone.FormatToE164(req.TelephoneAreaCode, req.Telephone)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.TelephoneError), "Invalid phone number")
|
||||
@@ -158,10 +170,14 @@ func (l *TelephoneLoginLogic) TelephoneLogin(req *types.TelephoneLoginRequest, r
|
||||
if uidStr == fmt.Sprintf("%d", userInfo.Id) {
|
||||
sessionId = oldSid
|
||||
reuseSession = true
|
||||
// Check TTL
|
||||
ttl, _ := l.svcCtx.Redis.TTL(l.ctx, oldSessionKey).Result()
|
||||
|
||||
l.Infow("reusing existing session for device",
|
||||
logger.Field("user_id", userInfo.Id),
|
||||
logger.Field("identifier", req.Identifier),
|
||||
logger.Field("session_id", sessionId),
|
||||
logger.Field("session_ttl", ttl.Seconds()),
|
||||
)
|
||||
} else {
|
||||
l.Infow("device session belongs to different user, creating new session",
|
||||
@@ -209,6 +225,21 @@ func (l *TelephoneLoginLogic) TelephoneLogin(req *types.TelephoneLoginRequest, r
|
||||
_ = l.svcCtx.Redis.Set(l.ctx, deviceCacheKey, sessionId, time.Duration(l.svcCtx.Config.JwtAuth.AccessExpire)*time.Second).Err()
|
||||
}
|
||||
loginStatus = true
|
||||
// 登录成功 - 打印详细信息用于调试
|
||||
l.Infow("========== 手机登录成功 ==========",
|
||||
logger.Field("user_id", userInfo.Id),
|
||||
logger.Field("telephone", phoneNumber),
|
||||
logger.Field("identifier", req.Identifier),
|
||||
logger.Field("session_id", sessionId),
|
||||
logger.Field("reuse_session", reuseSession),
|
||||
logger.Field("login_type", req.LoginType),
|
||||
logger.Field("login_ip", ip),
|
||||
logger.Field("user_agent", r.UserAgent()),
|
||||
logger.Field("session_limit", l.svcCtx.SessionLimit()),
|
||||
logger.Field("auth_methods_count", len(userInfo.AuthMethods)),
|
||||
logger.Field("devices_count", len(userInfo.UserDevices)),
|
||||
)
|
||||
|
||||
return &types.LoginResponse{
|
||||
Token: token,
|
||||
Limit: l.svcCtx.SessionLimit(),
|
||||
|
||||
Reference in New Issue
Block a user