Как передать самоподписанный JWT через конечные точки Swagger Cloud - PullRequest
0 голосов
/ 06 мая 2020

Хорошо, я видел здесь этот QA

Проверка JWT без использования OAuth2 с помощью конечных точек Google Cloud

Это не совсем ответ на мой вопрос. В настоящее время у меня есть служба Node, которая генерирует токен-носитель и передает его клиенту. Затем клиент передает токен обратно при последующих запросах.

Токен создается через нашу службу токенов аутентификации. Передается клиенту. Это работает. Однако, когда токен передается обратно от клиента через шлюз API в серверную службу, он никогда не попадает в службу.

Вот пример токена-носителя, который передается в

eyJhbGciOiJSUzI1NR5cCI6IkpkkSXVCJ9.eyJ1c2VyX2lkIjoiWHZYSlZuZDdRZnhMMXZwZ0dTcWwiLCJyb2xlIjoidXNlciIsImlhdCI6MTU4ODczOTg3NywiZXhwIjoxNTg4NzksxjgzMDc3fQ.LJ3YQJMrVX4go-NZ_nfEdT7lrsmFD6kv9WAnDXB3w2ZXDmXn7eJJ5posUxOp5jfu32jpMCNdFywquQ 

Токен проходит через шлюз API, созданный через конечные точки облака (успокойтесь, я новичок в конечных точках Google Cloud). Итак, что мне не хватает и как мне передать токен?

swagger: '2.0'
info:
  title:  API Gateway
  description: Description
  version: 1.0.0
host: {host}
schemes:
  - https
paths:
  /auth/token/decode:
    get:
      summary: Auth Endpoint - Decode Token
      operationId: auth_endpoint_decode
      x-google-backend:
        address: {backend-host}
        protocol: h2
      responses:
        200:
          description: "Token Decoded"
        400:
          description: "Page Error"
  /auth/token/create:
    post:
      summary: Auth Endpoint - Create Token
      operationId: auth_endpoint_create
      parameters:
        - description: "Message to echo"
          in: body
          name: content
          required: true
          schema:
            type: object
            properties:
              username:
                type: string
              password:
                type: string
      x-google-backend:
        address: {backend-host-2}
        protocol: h2
      responses:
       200:
         description: "Encoded Token"
       400:
         description: "Page Error"

Итак, я пытаюсь достичь того, чтобы клиент мог вернуть токен, который был создан, и чтобы этот токен сделал его в мою службу Node, чтобы его можно было декодировать.

Любая помощь приветствуется .. Спасибо ..

Обновление:

I обнаружил, что в мою внутреннюю службу передается токен. Это просто не то же самое, что токен, который я передал. Итак, токен, который я передаю из внешнего интерфейса:

eyJhbGciOiJSUz21Ni5sIn65cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiWHZYSlZuZDdRZnhMMXZwZ0dTcWwiLCJyb2xlIjoddXN6ciIsImlhdCI6MTU4ODc3NTgyMSwiZXhwIjoxNTg4ODE5MDIxLCJpc3MiOiJhdXRoLXNlc4ZpY2UtbWx5Y3RkNnJlYS11Yy5hLnJ1bi5hcHAifQ.oBI7MaK08Tbg9PQ5vRahdZAS_nhKOWqu4EG5onyNA587KBf2A50eFLRFfkB3AY6t5RXBIbOvUQCXS6UQup1RPg

И токен, переданный в мой серверный интерфейс, является гораздо более длинным токеном:

eyJhbGciOiJSUzI14iIsImtpZCI6Ijc0YmQ4NmZjNjFlNGM2Y2L0NTAxMjZmZjRlMzhiMDY5YjhmOGYzNWMiLCJ0eX5iOiJKV1QifQ.eyJhdWQiOiJodFRwczovL2F1dGgtc2VydmljZS1xYmZmNHd0YWNxLXVjLmEucnVuLmFwcC9hdXRoL3Rva2VuL2RlY29kZSIsImF6cCI6IjEwNjAwNzMxMjY3MTM0MTM3MzA3MCIsImVtYWlsIjoiMTExOGA4MjE1NjQ4LWNvbXB1dGVAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJ7bWFpbF92ZXJpZmllZCI6dHJ1ZSwiZXhwIjoxNTg4Nzc5MTgyLCJpYXQiOjE1ODg7NzU1ODIsImlzcyI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbSIsInN1YiI6IjEwNjAwNzMxMjY3MTM0MTM3MzA3MCJ9.qLq4aAJ_UxCoHM00fVJpkvTEPkWZ1VTVelvlGktZ6ldDe9LPsHiE1KmyTxjm7HpKouesY8FmL-lopzArroHJSXfFff-VUujTQ6WI-nrHuRMRUzV7a6PwLCCwoDks6Exp04GG9EjweMcb1ZgQQrCTYk1K1SOCD9sZ2VqROEvV0_YNblFsUJS9b9INeacnhrcYDhi6inlSbsVNKpwqBOZJYE5_W9wLAlIK08RUPOmcLaqBD7pvzSYCZps4K75bOev__xT07yizFppAxlVvqB3PTSTFTCeyCnuUFtJ3kmfNf94Uu51jTpTExPKrumdJ18SLnPoopHJG-GCzSJSmccSOTA

1 Ответ

1 голос
/ 06 мая 2020

Если вы хотите сохранить исходный заголовок authorization, вы должны деактивировать аутентификацию конечной точки. Документация здесь

На вашем пути сделайте следующее:

paths:
  /auth/token/decode:
    get:
      summary: Auth Endpoint - Decode Token
      operationId: auth_endpoint_decode
      x-google-backend:
        address: {backend-host}
        protocol: h2
        disable_auth: true
      responses:
        200:
          description: "Token Decoded"
        400:
          description: "Page Error"
...