Javascript 将用户id以明文形式发送到前端安全吗?

Javascript 将用户id以明文形式发送到前端安全吗?,javascript,mongodb,express,security,jwt,Javascript,Mongodb,Express,Security,Jwt,我有一个MongoDB的express应用程序。它为每个用户文档创建一个用户id。这个用户id也在jwt中编码,这给新开发人员带来了一种错觉,即用户id不能以纯文本形式发送到前端 有人能解释一下将用户id发送到前端会如何造成安全问题吗?据我所知,如果没有我的秘密字符串,黑客无法用它创建jwt。我的express应用程序都不会在后端的任何位置侦听此用户id。但它对于前端来说至关重要,因为它被用作卖家Id。我认为这不会带来安全风险,只是在编写服务器代码时更容易管理。如果您已经在处理通过JWT进行的登

我有一个MongoDB的express应用程序。它为每个用户文档创建一个用户id。这个用户id也在jwt中编码,这给新开发人员带来了一种错觉,即用户id不能以纯文本形式发送到前端


有人能解释一下将用户id发送到前端会如何造成安全问题吗?据我所知,如果没有我的秘密字符串,黑客无法用它创建jwt。我的express应用程序都不会在后端的任何位置侦听此用户id。但它对于前端来说至关重要,因为它被用作卖家Id。

我认为这不会带来安全风险,只是在编写服务器代码时更容易管理。如果您已经在处理通过JWT进行的登录身份验证,并且客户端代码没有理由关心用户ID,但服务器确实需要知道它,那么您也可以将所有内容嵌入JWT,而不是将JWT用于身份验证信息,并通过其他方法分别管理用户ID的通信。

为什么要将所有内容都嵌入JWT?前端无法作为其httpOnly访问jwt。如果我们想在前端访问它,用户id必须以明文形式单独发送。当用户登录时,我会发送整个用户文档。如果您希望客户端使用某些东西,当然不要使用JWT。如果您已经在使用JWT进行身份验证,并且服务器有关于每个设备的附加信息,而且客户端不需要知道,那么添加到现有JWT上通常比创建一种完全不同的通信方式更容易。我不明白您在说什么。我的服务器将用户文档发送到前端,包括用户id,仅供前端使用。在产品页面中提供一个卖家链接。就像我说的,如果前端需要使用用户ID,那么当然不要使用JWT,因为这根本不起作用。如果客户端需要信息,则以其他方式将其发送到客户端绝对没有错,在您的情况下,它确实需要。但为了验证用户身份验证,我的服务器只使用编码的用户id。它不会在任何请求中侦听发送到前端的纯文本用户id。因此,我认为将用户id发送到前端没有安全风险