修复 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

@@ -0,0 +1,67 @@
package wevent
import (
"time"
)
// 和前端交流的事件机制
type EventType string
const (
UserEmailRegister EventType = "E_USER_EMAIL_REGISTER" // 用户注册
)
// WebsocketEvent 所有事件都必须继承这个结构体
type WebsocketEvent struct {
Type EventType `json:"event_type"` // 事件
SenderTime time.Time `json:"sender_time"` // 发送的时间, 可能用来统计时间
TraceId string `json:"trace_id"` // 链路ID
Code int `json:"code"` // 状态码
Message string `json:"msg"` // 描述
Data any `json:"data"` // 关注的数据
}
// NewWebsocketEvent 创建一个Websocket事件
func NewWebsocketEvent(etype EventType, TraceId string) *WebsocketEvent {
return &WebsocketEvent{
Type: etype,
SenderTime: time.Now().UTC(),
TraceId: TraceId,
}
}
// NewWebsocketEventSuccess 创建一个Websocket事件伴随Code(200)
func NewWebsocketEventSuccess(etype EventType, TraceId string) *WebsocketEvent {
return &WebsocketEvent{
Type: etype,
SenderTime: time.Now().UTC(),
TraceId: TraceId,
Code: 200,
Message: "success",
}
}
func (event *WebsocketEvent) WithData(data any) *WebsocketEvent {
event.Data = data
return event
}
func (event *WebsocketEvent) WithMessgae(msg string) *WebsocketEvent {
event.Message = msg
return event
}
func (event *WebsocketEvent) WithCode(code int) *WebsocketEvent {
event.Code = code
return event
}
func (event *WebsocketEvent) WithTraceId(traceId string) *WebsocketEvent {
event.TraceId = traceId
return event
}
func (event *WebsocketEvent) WithSenderTime(senderTime time.Time) *WebsocketEvent {
event.SenderTime = senderTime
return event
}

6
utils/wevent/event.go Normal file
View File

@@ -0,0 +1,6 @@
package wevent
// 用户注册成功的事件关注的数据
type DataEmailRegister struct {
JwtToken string `json:"token"` // 注册成功的事件码
}

View File

@@ -0,0 +1,14 @@
package wevent
import (
"encoding/json"
"log"
"testing"
"github.com/google/uuid"
)
func TestEvent(t *testing.T) {
data, _ := json.Marshal(NewWebsocketEvent(UserEmailRegister, uuid.NewString()).WithCode(200))
log.Println(string(data))
}