使用 gcloud gcloud auth activate-service-account --key-file 和 gcloud auth print-access-token 的黑白 JWT 和访问令牌之间的差异

问题描述 投票:0回答:1

我对 JWT 和访问令牌一无所知。目前我正在通过生成命令行来使用访问令牌。之后我将其延长至 12 小时。现在的图片是我想使用 Node js 生成同样的东西。有人知道这会对我有很大帮助吗?

security google-cloud-platform google-cloud-functions gcloud access-token
1个回答
0
投票
  • 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}`);
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.