如何通过 Swagger 云端点传递自签名 JWT
How To Pass a Self Signed JWT through Swagger Cloud Endpoints
好的,我在这里看到了这个 QA
这并没有完全回答我的问题。目前,我有一个生成 Bearer 令牌并将其传递给客户端的节点服务。然后客户端在后续请求中传回令牌。
令牌是通过我们的身份验证令牌服务创建的。它是传递给客户端的。这行得通。但是,当令牌通过 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"
所以我想要实现的是让客户端能够传回创建的令牌,并让该令牌进入我的节点服务以便对其进行解码。
非常感谢任何帮助..谢谢..
更新:
我发现有一个令牌被传递到我的后端服务。它与我传入的令牌不同。所以我从前端传入的令牌是:
eyJhbGciOiJSUz21Ni5sIn65cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiWHZYSlZuZDdRZnhMMXZwZ0dTcWwiLCJyb2xlIjoddXN6ciIsImlhdCI6MTU4ODc3NTgyMSwiZXhwIjoxNTg4ODE5MDIxLCJpc3MiOiJhdXRoLXNlc4ZpY2UtbWx5Y3RkNnJlYS11Yy5hLnJ1bi5hcHAifQ.oBI7MaK08Tbg9PQ5vRahdZAS_nhKOWqu4EG5onyNA587KBf2A50eFLRFfkB3AY6t5RXBIbOvUQCXS6UQup1RPg
传递到我后端的令牌是一个更长的令牌:
eyJhbGciOiJSUzI14iIsImtpZCI6Ijc0YmQ4NmZjNjFlNGM2Y2L0NTAxMjZmZjRlMzhiMDY5YjhmOGYzNWMiLCJ0eX5iOiJKV1QifQ.eyJhdWQiOiJodFRwczovL2F1dGgtc2VydmljZS1xYmZmNHd0YWNxLXVjLmEucnVuLmFwcC9hdXRoL3Rva2VuL2RlY29kZSIsImF6cCI6IjEwNjAwNzMxMjY3MTM0MTM3MzA3MCIsImVtYWlsIjoiMTExOGA4MjE1NjQ4LWNvbXB1dGVAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJ7bWFpbF92ZXJpZmllZCI6dHJ1ZSwiZXhwIjoxNTg4Nzc5MTgyLCJpYXQiOjE1ODg7NzU1ODIsImlzcyI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbSIsInN1YiI6IjEwNjAwNzMxMjY3MTM0MTM3MzA3MCJ9.qLq4aAJ_UxCoHM00fVJpkvTEPkWZ1VTVelvlGktZ6ldDe9LPsHiE1KmyTxjm7HpKouesY8FmL-lopzArroHJSXfFff-VUujTQ6WI-nrHuRMRUzV7a6PwLCCwoDks6Exp04GG9EjweMcb1ZgQQrCTYk1K1SOCD9sZ2VqROEvV0_YNblFsUJS9b9INeacnhrcYDhi6inlSbsVNKpwqBOZJYE5_W9wLAlIK08RUPOmcLaqBD7pvzSYCZps4K75bOev__xT07yizFppAxlVvqB3PTSTFTCeyCnuUFtJ3kmfNf94Uu51jTpTExPKrumdJ18SLnPoopHJG-GCzSJSmccSOTA
如果您想保留原始 authorization
header,您必须停用端点身份验证。文档 here
在你的道路上,这样做:
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"
好的,我在这里看到了这个 QA
这并没有完全回答我的问题。目前,我有一个生成 Bearer 令牌并将其传递给客户端的节点服务。然后客户端在后续请求中传回令牌。
令牌是通过我们的身份验证令牌服务创建的。它是传递给客户端的。这行得通。但是,当令牌通过 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"
所以我想要实现的是让客户端能够传回创建的令牌,并让该令牌进入我的节点服务以便对其进行解码。
非常感谢任何帮助..谢谢..
更新:
我发现有一个令牌被传递到我的后端服务。它与我传入的令牌不同。所以我从前端传入的令牌是:
eyJhbGciOiJSUz21Ni5sIn65cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiWHZYSlZuZDdRZnhMMXZwZ0dTcWwiLCJyb2xlIjoddXN6ciIsImlhdCI6MTU4ODc3NTgyMSwiZXhwIjoxNTg4ODE5MDIxLCJpc3MiOiJhdXRoLXNlc4ZpY2UtbWx5Y3RkNnJlYS11Yy5hLnJ1bi5hcHAifQ.oBI7MaK08Tbg9PQ5vRahdZAS_nhKOWqu4EG5onyNA587KBf2A50eFLRFfkB3AY6t5RXBIbOvUQCXS6UQup1RPg
传递到我后端的令牌是一个更长的令牌:
eyJhbGciOiJSUzI14iIsImtpZCI6Ijc0YmQ4NmZjNjFlNGM2Y2L0NTAxMjZmZjRlMzhiMDY5YjhmOGYzNWMiLCJ0eX5iOiJKV1QifQ.eyJhdWQiOiJodFRwczovL2F1dGgtc2VydmljZS1xYmZmNHd0YWNxLXVjLmEucnVuLmFwcC9hdXRoL3Rva2VuL2RlY29kZSIsImF6cCI6IjEwNjAwNzMxMjY3MTM0MTM3MzA3MCIsImVtYWlsIjoiMTExOGA4MjE1NjQ4LWNvbXB1dGVAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJ7bWFpbF92ZXJpZmllZCI6dHJ1ZSwiZXhwIjoxNTg4Nzc5MTgyLCJpYXQiOjE1ODg7NzU1ODIsImlzcyI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbSIsInN1YiI6IjEwNjAwNzMxMjY3MTM0MTM3MzA3MCJ9.qLq4aAJ_UxCoHM00fVJpkvTEPkWZ1VTVelvlGktZ6ldDe9LPsHiE1KmyTxjm7HpKouesY8FmL-lopzArroHJSXfFff-VUujTQ6WI-nrHuRMRUzV7a6PwLCCwoDks6Exp04GG9EjweMcb1ZgQQrCTYk1K1SOCD9sZ2VqROEvV0_YNblFsUJS9b9INeacnhrcYDhi6inlSbsVNKpwqBOZJYE5_W9wLAlIK08RUPOmcLaqBD7pvzSYCZps4K75bOev__xT07yizFppAxlVvqB3PTSTFTCeyCnuUFtJ3kmfNf94Uu51jTpTExPKrumdJ18SLnPoopHJG-GCzSJSmccSOTA
如果您想保留原始 authorization
header,您必须停用端点身份验证。文档 here
在你的道路上,这样做:
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"