如何通过Swagger Cloud端点传递自签名JWT



好的,所以我在这里看到了这个QA

使用Google Cloud端点进行Non-OAuth2 JWT验证

这并不能完全回答我的问题。目前,我有一个Node服务,它生成一个Bearer令牌并将其传递给客户端。然后,客户端在随后的请求中返回令牌。

令牌是通过我们的auth令牌服务创建的。它是传递给客户端的。这是有效的。然而,当令牌从客户端通过API网关传递回后端服务时,它永远不会传递到服务。

以下是在中传递的承载令牌的示例

eyJhbGciOiJSUzI1NR5cCI6IkpkkSXVCJ9.eyJ1c2VyX2lkIjoiWHZYSlZuZDdRZnhMMXZwZ0dTcWwiLCJyb2xlIjoidXNlciIsImlhdCI6MTU4ODczOTg3NywiZXhwIjoxNTg4NzksxjgzMDc3fQ.LJ3YQJMrVX4go-NZ_nfEdT7lrsmFD6kv9WAnDXB3w2ZXDmXn7eJJ5posUxOp5jfu32jpMCNdFywquQ 

令牌通过通过云端点创建的API网关(请放心,我是Google云端点的新手。(。那么我缺少什么?我该如何传递令牌?

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服务中,以便对其进行解码。

非常感谢您的帮助。。非常感谢。

更新:

我发现有一个令牌正在传递到我的后端服务中。它和我传递的令牌不一样。所以我从前端传递的令牌是:

eyJhbGciOiJSUz21Ni5sIn65cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiWHZYSlZuZDdRZnhMMXZwZ0dTcWwiLCJyb2xlIjoddXN6ciIsImlhdCI6MTU4ODc3NTgyMSwiZXhwIjoxNTg4ODE5MDIxLCJpc3MiOiJhdXRoLXNlc4ZpY2UtbWx5Y3RkNnJlYS11Yy5hLnJ1bi5hcHAifQ.oBI7MaK08Tbg9PQ5vRahdZAS_nhKOWqu4EG5onyNA587KBf2A50eFLRFfkB3AY6t5RXBIbOvUQCXS6UQup1RPg

传递到我后端的令牌是一个更长的令牌:

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

如果要保留原始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"

最新更新