user.go 583 字节
Newer Older
Y
Your Name 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
package goku_handler

import (
	"context"
	"fmt"
	"net/http"
)

//ContextKey contextKey
type userIDKey struct {
}

var _userIDKey = userIDKey{}

//UserIDFromRequest 从request中读取用户ID
func UserIDFromRequest(req *http.Request) int {
	ctx := req.Context()
	p, ok := ctx.Value(_userIDKey).(int)
	if !ok {
		fmt.Println("error")
	}
	return p
}

//SetUserIDToRequest 设置userID到request
func SetUserIDToRequest(req *http.Request, userID int) *http.Request {
	rctx := req.Context()
	rctx = context.WithValue(rctx, _userIDKey, userID)
	req = req.WithContext(rctx)
	return req
}