我一直在使用
Auth0来构建我的站点的前端用户身份验证部分,但我不确定是否应该完全遵循文档.
如果我想构建商业产品,我应该隐藏客户端ID和域吗?这会导致安全漏洞吗?
目前,任何人都可以查看我的Angular2源代码并查看客户端ID和域.
解决方法
客户端标识符和您的域(我假设您指的是与[account] .auth0.com类似的已分配的Auth0域)都被视为不需要保密的信息.
域代表处理身份验证的实体;相当于您应用的accounts.google.com.
客户端标识符在OAuth 2.0规范中定义,该规范明确指出不是机密信息:
The client identifier is not a secret; it is exposed to the resource owner and MUST NOT be used alone for client authentication.
在基于浏览器或其他应用程序中,实际代码位于客户端环境中,将信息存储在那里以进行身份验证是不可避免的.您只需要确保存储的信息可以像您提供的两个示例一样公开.
另一方面,这些类型的应用程序无法安全地使用客户机密码,因为它是由OAuth 2.0定义的,因为正如您所说,任何人都可以通过检查代码来查看它.