好吧,我看到这个QA在这里
使用Google Cloud Endpoints进行Non-OAuth2 JWT验证。
这并没有完全回答我的问题。目前,我有一个Node服务,它会生成一个Bearer令牌,并将其传递给客户端。然后,客户端在后续的请求中把令牌传回。
该令牌是通过我们的 auth token 服务创建的。它被传递给客户端。这样做是可行的。然而,当令牌从客户端通过API网关传回后端服务时,它从来没有传到服务中。
下面是一个传递的不记名令牌的例子。
eyJhbGciOiJSUzI1NR5cCI6IkpkkSXVCJ9.eyJ1c2VyX2lkIjoiWHZYSlZuZDdRZnhMMXZwZ0dTcWwiLCJyb2xlIjoidXNlciIsImlhdCI6MTU4ODczOTg3NywiZXhwIjoxNTg4NzksxjgzMDc3fQ.LJ3YQJMrVX4go-NZ_nfEdT7lrsmFD6kv9WAnDXB3w2ZXDmXn7eJJ5posUxOp5jfu32jpMCNdFywquQ
令牌通过云端点创建的 API 网关(别紧张,我是谷歌云端点的新手)。那么,我缺少了什么,我如何将令牌传入?
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 found that there is a token being passed into my backend service. 只是和我传入的token不一样。所以,我从前端传入的token是:
eyJhbGciOiJSUz21Ni5sIn65cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiWHZYSlZuZDdRZnhMMXZwZ0dTcWwiLCJyb2xlIjoddXN6ciIsImlhdCI6MTU4ODc3NTgyMSwiZXhwIjoxNTg4ODE5MDIxLCJpc3MiOiJhdXRoLXNlc4ZpY2UtbWx5Y3RkNnJlYS11Yy5hLnJ1bi5hcHAifQ.oBI7MaK08Tbg9PQ5vRahdZAS_nhKOWqu4EG5onyNA587KBf2A50eFLRFfkB3AY6t5RXBIbOvUQCXS6UQup1RPg
而传入我后台的令牌是一个更长的令牌 And the token passed into my backend is a much longer token:
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"