修复 jwt payload解析的错误

This commit is contained in:
eson
2023-08-25 15:37:35 +08:00
parent ede181d6dd
commit f91f9d3230
21 changed files with 263 additions and 109 deletions

View File

@@ -44,7 +44,7 @@ func (l *AcceptCookieLogic) AcceptCookie(req *types.Request, userinfo *auth.User
}
m := l.svcCtx.AllModels.FsGuest
token, err := m.GenerateGuestID(l.ctx, &l.svcCtx.Config.Auth.AccessSecret)
token, err := m.GenerateGuestID(l.ctx, auth.DefaultJwtSecret)
if err != nil {
return resp.SetStatus(basic.CodeGuestGenErr)
}

View File

@@ -1,9 +1,10 @@
package logic
import (
"fmt"
"fusenapi/utils/auth"
"fusenapi/utils/basic"
"log"
"fusenapi/utils/wevent"
"time"
"context"
@@ -11,6 +12,7 @@ import (
"fusenapi/server/auth/internal/svc"
"fusenapi/server/auth/internal/types"
"github.com/474420502/requests"
"github.com/zeromicro/go-zero/core/logx"
)
@@ -53,7 +55,7 @@ func (l *UserEmailConfirmationLogic) UserEmailConfirmation(req *types.RequestEma
// 谷歌平台的注册流程
user, err := l.svcCtx.AllModels.FsUser.RegisterByGoogleOAuth(l.ctx, token)
if err != nil {
logx.Error(err)
logx.Error(err, token.TraceId)
return resp.SetStatus(basic.CodeDbSqlErr)
}
@@ -67,18 +69,40 @@ func (l *UserEmailConfirmationLogic) UserEmailConfirmation(req *types.RequestEma
)
if err != nil {
logx.Error(err)
logx.Error(err, token.TraceId)
return
}
log.Println(jwtToken) // 通过websocket去, 送回通道
event := wevent.NewWebsocketEventSuccess(wevent.UserEmailRegister, token.TraceId)
event.Data = wevent.DataEmailRegister{
JwtToken: jwtToken,
}
tp := requests.Post(fmt.Sprintf("%s/api/websocket/common_notify", l.svcCtx.Config.MainAddress))
tp.SetBodyJson(requests.M{
"wid": token.Wid,
"data": event,
})
wresp, err := tp.Execute()
if err != nil {
logx.Error(err, token.TraceId)
return
}
result := wresp.Json()
if result.Get("code").Int() != 200 {
logx.Error(result.Get("message"))
return
}
logx.Info("success", token.TraceId, jwtToken)
case "facebook":
case "fusen":
user, err := l.svcCtx.AllModels.FsUser.RegisterByFusen(l.ctx, token)
if err != nil {
logx.Error(err)
logx.Error(err, token.TraceId)
return resp.SetStatus(basic.CodeDbSqlErr)
}
@@ -92,12 +116,28 @@ func (l *UserEmailConfirmationLogic) UserEmailConfirmation(req *types.RequestEma
)
if err != nil {
logx.Error(err)
logx.Error(err, token.TraceId)
return
}
log.Println(jwtToken)
event := wevent.NewWebsocketEventSuccess(wevent.UserEmailRegister, token.TraceId)
event.Data = wevent.DataEmailRegister{
JwtToken: jwtToken,
}
tp := requests.Post(fmt.Sprintf("%s/api/websocket/common_notify", l.svcCtx.Config.MainAddress))
tp.SetBodyJson(requests.M{
"wid": token.Wid,
"data": event,
})
wresp, err := tp.Execute()
if err != nil {
logx.Error(err, token.TraceId)
}
result := wresp.Json()
if result.Get("code").Int() != 200 {
logx.Error(result.Get("message"))
}
logx.Info("success", token.TraceId, jwtToken)
}
default:

View File

@@ -17,6 +17,7 @@ import (
"fusenapi/server/auth/internal/types"
"github.com/474420502/requests"
"github.com/google/uuid"
"github.com/zeromicro/go-zero/core/logx"
"github.com/zeromicro/go-zero/rest/httpx"
"golang.org/x/oauth2"
@@ -91,9 +92,10 @@ func (l *UserGoogleLoginLogic) UserGoogleLogin(req *types.RequestGoogleLogin, us
l.registerInfo = &auth.RegisterToken{
Id: googleId,
Password: base64.URLEncoding.EncodeToString(nonce),
Password: base64.RawURLEncoding.EncodeToString(nonce),
Platform: "google",
OperateType: auth.OpTypeRegister,
TraceId: uuid.NewString(),
CreateAt: time.Now(),
}

View File

@@ -10,6 +10,7 @@ import (
"fusenapi/server/auth/internal/svc"
"fusenapi/server/auth/internal/types"
"github.com/google/uuid"
"github.com/zeromicro/go-zero/core/logx"
)
@@ -48,6 +49,7 @@ func (l *UserRegisterLogic) UserRegister(req *types.RequestUserRegister, userinf
Email: req.Email,
Password: req.Password,
Platform: "fusen",
TraceId: uuid.NewString(),
CreateAt: time.Now(),
}

View File

@@ -10,6 +10,7 @@ import (
"fusenapi/server/auth/internal/svc"
"fusenapi/server/auth/internal/types"
"github.com/google/uuid"
"github.com/zeromicro/go-zero/core/logx"
)
@@ -51,6 +52,7 @@ func (l *UserResetTokenLogic) UserResetToken(req *types.RequestUserResetToken, u
Wid: req.Wid,
Email: *user.Email,
OldPassword: *user.PasswordHash,
TraceId: uuid.NewString(),
CreateAt: time.Now(),
}

View File

@@ -0,0 +1,40 @@
package logic
import (
"fmt"
"fusenapi/utils/wevent"
"log"
"testing"
"github.com/474420502/requests"
"github.com/google/uuid"
"github.com/zeromicro/go-zero/core/logx"
)
func TestSender(t *testing.T) {
traceId := uuid.NewString()
event := wevent.NewWebsocketEventSuccess(wevent.UserEmailRegister, traceId)
event.Data = wevent.DataEmailRegister{
JwtToken: traceId,
}
tp := requests.Post(fmt.Sprintf("%s/api/websocket/common_notify", "https://server.fusen.3718.cn:9900"))
tp.SetBodyJson(requests.M{
"wid": "tGyMYX9EldtsPLZTyT6PxrRgEV615CQGEiu9Sb1XrjZ4kpTjI46sQyh7kYfVlgN9uR5Uw4KDF+S62IknmaRgSMdee1QHVtCv+VEKrMF76snR04zS1ZbWZCgX5Lv2xgHz/bZBWwJF/9u6YTy2/FetGg==",
"data": event,
})
wresp, err := tp.Execute()
if err != nil {
logx.Error(err, "traceId")
return
}
result := wresp.Json()
if result.Get("code").Int() != 200 {
logx.Error(result.Get("message"))
return
}
log.Println(result)
}