我对 JWT 和访问令牌一无所知。目前我正在通过生成命令行来使用访问令牌。之后我将其延长至 12 小时。现在的图片是我想使用 Node js 生成同样的东西。有人知道这会对我有很大帮助吗?
JWT- 用于安全信息交换和身份验证。 它非常适合 Web 应用程序中的无状态身份验证,因此广泛用于身份验证和授权目的。
OAuth: 非常适合授权和委派访问,特别是在处理第三方应用程序时,即临时访问 API。
gcloud auth activate-service-account 使用服务帐号授权访问 Google Cloud。 OAuth 2.0 访问令牌对于验证从服务帐号到 Google Cloud API 的访问非常有用。 OAuth 非常适合授权和委派访问,尤其是在处理第三方应用程序时。
gcloud auth print-access-token 显示当前服务帐户的访问令牌并打印指定帐户的访问令牌。
参考此Digitalocean社区和前往开发者中心文档使用node.js生成访问令牌。
用于创建代币生成
const jwt = require('jsonwebtoken');
const secretKey = 'your-secret-key';
function generateAccessToken(payload) {
return jwt.sign(payload, secretKey, { expiresIn: '12h' });
const token = generateAccessToken({ user: 'abc', role: 'admin' });
console.log(token);
使用代币
app.get('/protected', (req, res) => {
const token = req.headers.authorization.split(' ')[1]; //Authorization header using the Bearer schema.
jwt.verify(token, secretKey, (err, decoded) => {
if (err) {
return res.status(401).send('Invalid token');
}
res.send(`Access granted for user: ${decoded.user}`);
});
});