在使用 Auth0 的 golang 服务器中找出当前用户名
Find out current user name in golang server that uses Auth0
我正在使用 auth0
和 golang
进行与 here.
所示实施类似的休息服务
我想知道如何找出当前触发某个 API 调用的用户的名称 - 例如,如果有人请求 http://localhost:3000/products
- 在这种情况下,go 处理程序如下所示:
var ProductsHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
payload, _ := json.Marshal(products)
w.Header().Set("Content-Type", "application/json")
w.Write([]byte(payload))
})
请求r
是否包含有关当前用户的更多信息?
还是需要在中间件认证中找出当前用户:
func authMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
secret := []byte("{YOUR-AUTH0-API-SECRET}")
secretProvider := auth0.NewKeyProvider(secret)
audience := "{YOUR-AUTH0-API-AUDIENCE}"
configuration := auth0.NewConfiguration(secretProvider, audience, "https://{YOUR-AUTH0-DOMAIN}.auth0.com/", jose.HS256)
validator := auth0.NewValidator(configuration)
token, err := validator.ValidateRequest(r)
if err != nil {
fmt.Println(err)
fmt.Println("Token is not valid:", token)
w.WriteHeader(http.StatusUnauthorized)
w.Write([]byte("Unauthorized"))
} else {
next.ServeHTTP(w, r)
}
})
}
token
是否包含有关用户的更多信息?
我有点迷路了。 auth0
完美地确保只有注册人员才能使用 REST-API,但我想提供用户特定信息。因此,这取决于当前用户 REST 调用返回的内容。最初,我以为 auth0 会处理这个问题。有没有一种简单的方法可以实现这一目标?
是的,您需要使用 token
来获取有关请求问题的信息。
要对您想要的所有内容进行排序,您需要查看下一个:
- 查看此方法中如何提取令牌:token extraction
- 这里的
Claims
:Claims structure
- 以及如何在此处组合它:retrieve Claims
声明有一个字段
Issuer string `json:"iss,omitempty"`
你有兴趣。
我正在使用 auth0
和 golang
进行与 here.
我想知道如何找出当前触发某个 API 调用的用户的名称 - 例如,如果有人请求 http://localhost:3000/products
- 在这种情况下,go 处理程序如下所示:
var ProductsHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
payload, _ := json.Marshal(products)
w.Header().Set("Content-Type", "application/json")
w.Write([]byte(payload))
})
请求r
是否包含有关当前用户的更多信息?
还是需要在中间件认证中找出当前用户:
func authMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
secret := []byte("{YOUR-AUTH0-API-SECRET}")
secretProvider := auth0.NewKeyProvider(secret)
audience := "{YOUR-AUTH0-API-AUDIENCE}"
configuration := auth0.NewConfiguration(secretProvider, audience, "https://{YOUR-AUTH0-DOMAIN}.auth0.com/", jose.HS256)
validator := auth0.NewValidator(configuration)
token, err := validator.ValidateRequest(r)
if err != nil {
fmt.Println(err)
fmt.Println("Token is not valid:", token)
w.WriteHeader(http.StatusUnauthorized)
w.Write([]byte("Unauthorized"))
} else {
next.ServeHTTP(w, r)
}
})
}
token
是否包含有关用户的更多信息?
我有点迷路了。 auth0
完美地确保只有注册人员才能使用 REST-API,但我想提供用户特定信息。因此,这取决于当前用户 REST 调用返回的内容。最初,我以为 auth0 会处理这个问题。有没有一种简单的方法可以实现这一目标?
是的,您需要使用 token
来获取有关请求问题的信息。
要对您想要的所有内容进行排序,您需要查看下一个:
- 查看此方法中如何提取令牌:token extraction
- 这里的
Claims
:Claims structure - 以及如何在此处组合它:retrieve Claims
声明有一个字段
Issuer string `json:"iss,omitempty"`
你有兴趣。