Я пытаюсь подключиться к веб-соединению с URL-адресом (клиент python), который должен иметь переданный токен jwt, и сервер (реализованный в GO) прослушивает этот запрос и должен аутентифицироваться путем разбора маркера.WebSocket JWT Разрешение подключения токена
Я стараюсь использовать эту часть кода, чтобы сделать запрос -
def test_auth_token(token)
conn = create_connection("ws://<IP>:port"+ '/'+ container.uuid + '?token='+token)
result = conn.recv()
assert result is not None
Этого запрос попадет на сервере, который запускает этот код для проверки этого запроса
Func ParseFromRequest (Req * http.Request , keyFunc keyfunc) (маркер * маркер, ERR ошибка) {
// Look for an Authorization header
if ah := req.Header.Get("Authorization"); ah != "" {
// Should be a bearer token
if len(ah) > 6 && strings.ToUpper(ah[0:6]) == "BEARER" {
return Parse(ah[7:], keyFunc)
}
}
// Look for "access_token" parameter
req.ParseMultipartForm(10e6)
if tokStr := req.Form.Get("access_token"); tokStr != "" {
return Parse(tokStr, keyFunc)
}
return nil, ErrNoTokenInRequest
}
Каждый раз, когда я получаю вывод «ErrNoTokenInRequest», несмотря на то, что передаю токен в качестве параметра запроса. Проверка подлинности на стороне сервера выполняется этой внешней библиотекой, которая содержит вышеуказанную GO-процедуру. https://github.com/dgrijalva/jwt-go/blob/master/jwt.go
Я не уверен, каковы могут быть причины, по которым сервер не находит маркер, отправленный на моем клиенте? Должен ли он быть отправлен как полезная нагрузка или заголовки или что-то еще? Может ли кто-нибудь указать, что этот модуль работает?
С «access_token» в качестве параметра запроса я получаю это исключение -
self = <websocket._core.WebSocket object at 0x10a15a6d0>
host = 'x.x.x.x.', port = 9345
resource = '/v1/stats/fff51e85-f2bb-4ace-8dcc-fde590932cca?access_token=eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE0MjIxMzEyMzUsInN1YiI6ImNh...vxvBmtZRrUTY5AcvrjbojXqLxFHL_CMsmTZfTXhOiy-7W2V95bqts2Wy4R8oQvsfDylYJWCBTzZNKHvPVFpcl0jQKLm1ms-LOJg1w-k23VfojZucPGtY5A'
options = {}
headers = ['GET /v1/stats/fff51e85-f2bb-4ace-8dcc-fde590932cca?access_token=eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE0MjIxMzEyMzUsInN1YiI... 'Host: x.x.x.x.:9345', 'Origin: http://x.x.x.x.:9345', 'Sec-WebSocket-Key: BN1n2BcCT/CUGh9MHeyL5g==', ...]
key = 'BN1n2BcCT/CUGh9MHeyL5g=='
header_str = 'GET /v1/stats/fff51e85-f2bb-4ace-8dcc-fde590932cca?access_token=eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE0MjIxMzEyMzUsInN1YiI6...3:9345
Origin: http://192.168.59.103:9345
Sec-WebSocket-Key: BN1n2BcCT/CUGh9MHeyL5g==
Sec-WebSocket-Version: 13
Давайте [продолжить это обсуждение в чате] (http://chat.stackoverflow.com/rooms/69523/discussion-between-psbits-and-thwd). – psbits