为什么我的 Auth0 令牌从 iOS 发送到 node.js 服务器时总是返回无效?
Why is my Auth0 token always coming back as invalid when sent from iOS to node.js server?
我将 Auth0 的服务用于 iOS 应用程序,其服务器构建在 node.js 和 express.js 上。我已尽我所能关注 Auth0 的文档和种子项目,但服务器一直抱怨我从 iOS 应用程序发送的令牌无效。这是我的一些代码:
来自服务器 - 身份验证和路由声明,如 Auth0 documentation
中指定
var authenticate = jwt({
secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'),
audience: process.env.AUTH0_CLIENT_ID
});
app.use('/api', authenticate);
app.use('/api/userquery', queries);
并且从 iOS 开始,为请求设置 header(使用 AFNetworking):
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
我知道请求已正确发送,因为它适用于不需要身份验证的路径。最后,这是我在服务器端收到的错误:
GET /api/userquery/currentUser 401 7.185 ms - 436
UnauthorizedError: invalid token
at /node_modules/express-jwt/lib/index.js:100:22
at /node_modules/jsonwebtoken/index.js:155:18
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)
问题只是我在将令牌从钥匙串中拉出后无法解包。我没有在授权 header 中发送 "Bearer [token]",而是发送 "Bearer [Optional(token)]".
我将 Auth0 的服务用于 iOS 应用程序,其服务器构建在 node.js 和 express.js 上。我已尽我所能关注 Auth0 的文档和种子项目,但服务器一直抱怨我从 iOS 应用程序发送的令牌无效。这是我的一些代码:
来自服务器 - 身份验证和路由声明,如 Auth0 documentation
中指定var authenticate = jwt({
secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'),
audience: process.env.AUTH0_CLIENT_ID
});
app.use('/api', authenticate);
app.use('/api/userquery', queries);
并且从 iOS 开始,为请求设置 header(使用 AFNetworking):
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
我知道请求已正确发送,因为它适用于不需要身份验证的路径。最后,这是我在服务器端收到的错误:
GET /api/userquery/currentUser 401 7.185 ms - 436
UnauthorizedError: invalid token
at /node_modules/express-jwt/lib/index.js:100:22
at /node_modules/jsonwebtoken/index.js:155:18
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)
问题只是我在将令牌从钥匙串中拉出后无法解包。我没有在授权 header 中发送 "Bearer [token]",而是发送 "Bearer [Optional(token)]".