У меня есть запрос curl:
curl -XPOST -H 'Content-Type: application/json' -H 'Authorization: sso-jwt JWT_STRING' http://localhost:50051/doSomething -d '{"note": "Here's a note"}'
Я использую echo.Context для анализа этого запроса.Мне нужно извлечь общее имя (CN) из JWT_STRING.Вот как далеко у меня:
tokenString, err := request.HeaderExtractor{"Authorization"}.ExtractToken(c.Request())
if err == nil {
fmt.Println(tokenString)
} else {
fmt.Println(err)
}
Приведенные выше отпечатки:
sso-jwt JWT_STRING
, тогда как я хочу JWT_STRING
.
Есть ли способ добиться этого лучше?(Помимо использования манипуляции со строками для извлечения только JWT_STRING
).
Этот код находится внутри функции моего обработчика, которая имеет следующую подпись: func (lock *Lock) DoSomething(c echo.Context) error {}
РЕДАКТИРОВАТЬ
У меня работает следующее:
reqToken := c.Request().Header.Get("Authorization")
splitToken := strings.Split(reqToken, "sso-jwt ")
reqToken = splitToken[1]
fmt.Println(reqToken)
Но лучше ли это для этого?