34 lines
781 B
Go
34 lines
781 B
Go
package utils
|
||
|
||
import (
|
||
"context"
|
||
"mingyang-admin-app-rpc/types/app"
|
||
)
|
||
|
||
const (
|
||
UserContent = "userContent"
|
||
)
|
||
|
||
// UserContext RequestContext 请求上下文信息(API 和 RPC 共享)
|
||
type UserContext struct {
|
||
Token string // 原始 token 字符串
|
||
UserID uint64 // 用户ID
|
||
TokenClaims *app.AuthInfoResp // token 解析后的 claims
|
||
ClientIP string // 客户端IP
|
||
UserAgent string // User-Agent
|
||
}
|
||
|
||
// GetRequestContext 从上下文获取请求上下文(RPC 层)
|
||
// 从上下文获取请求上下文
|
||
func GetRequestContext(ctx context.Context) *UserContext {
|
||
value := ctx.Value(UserContent)
|
||
if value == nil {
|
||
return nil
|
||
}
|
||
reqCtx, ok := value.(*UserContext)
|
||
if !ok {
|
||
return nil
|
||
}
|
||
return reqCtx
|
||
}
|