【发布时间】:2021-09-23 16:08:27
【问题描述】:
我想实现从机器到机器的身份验证。我正在考虑为 API 分配一个用户一个 client_secret 和 client_id,API 1 将使用它来换取 JWT 访问令牌。
我能否只为密钥和 ID 创建 2 个唯一字符串并将它们针对用户存储在数据库中?
类似这样的事情:
import { randomUUID } from "crypto";
const bcrypt = require('bcrypt');
const saltRounds = 10;
const client_id = randomUUID();
const client_secret = randomUUID();
const salt = bcrypt.genSaltSync(saltRounds);
const hash = bcrypt.hashSync(client_secret, salt);
// store hash in database
// have API store client_secret and client_id as environment variables
然后可以使用客户端密钥/ID 在传入请求时验证 API?
【问题讨论】:
-
是的,只要它们对每个客户都是独一无二的,这一切都很好。
标签: javascript node.js authentication oauth-2.0