首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建接口鉴权的client_id和client_secret?

如何创建接口鉴权的client_id和client_secret?
EN

Stack Overflow用户
提问于 2021-07-15 00:48:43
回答 1查看 26关注 0票数 0

我想实现机器到机器的身份验证。我正在考虑为API用户分配一个client_secret和client_id,API1将使用它们来换取JWT访问令牌。

我是否可以只为密钥和ID创建两个唯一的字符串,并将它们针对用户存储在数据库中?

大致是这样的:

代码语言:javascript
复制
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?

EN

回答 1

Stack Overflow用户

发布于 2021-07-15 02:34:47

更标准的选择可能是将用户令牌从一台机器转发到另一台机器,如这篇IAM Primer文章中所述。

您正在做的一个可能的问题是,您正在为用户存储一个长期存在的凭据,该凭据可用于在未经用户同意的情况下访问资源。

根据场景的不同,从安全的角度来看,这可能是不好的,因为如果恶意方获得了用户的客户端ID和秘密,他们可以作为用户操作,而下游API无法知道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68382137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档