Google OAuth - 客户端 ID 的存储位置
Google OAuth - Where to Store Client ID
我按照此 link 允许我的用户通过 google 进行身份验证:
https://dev.to/jorgecf/integrating-google-authentication-with-your-angular-app-4j2a
但是,我的 UI 代码中必须包含我的 Google 客户端 ID:
return pload.then(async () => {
await gapi.auth2
.init({ client_id: 'abc123' }) // Put my client ID here. How should I store this?
.then(auth => {
this.gapiSetup = true;
this.authInstance = auth;
});
});
这是安全问题吗?如果是这样,where/how 我会存储它吗?
我收到了类似的问题,所以我认为这是一个有效的问题。
Oauth2 流程需要 client_id int 浏览器,因此不是安全问题。
为什么? :因为这就是 OAUTH2 SPECIFICATION
的定义方式
为什么需要 client_id?
您的 angular 代码需要 client_id 来生成 auth url 然后执行重定向到那个 url .无论 oauth2 提供程序(google、facebook 等)如何,url 都具有以下语法:
https://auth.acme.com/auth?response_type=code&redirect_uri=https://myweb.com/callback&client_id=******
Note redirect_uri and client_id fields.
此 auth url 负责显示登录表单、接收凭据并执行重定向到 redirect_uri 发送 代码 值
什么是问题?
在您的前端(angular) 中设置秘密将是安全问题。
此机密必须与客户端 ID 和其他字段一起使用,以从 google 检索您的案例中的 access_token。如果您拥有正确的权限,此令牌将允许您使用 google api(驱动器、地图等)。
这个流程必须在你的后台
怎么偏隐藏呢?
在您的后端创建 auth url 并使用 302 http 代码 return 它到您的前端。浏览器将执行即时重定向。
我说的是部分,因为好奇的伙伴可以停止重定向(esc 键)或使用浏览器控制台并查看您的 auth url 其中包含 client_id 字段
欢迎使用此聊天室https://chat.whosebug.com/rooms/215054/oauth2-budy 提出与 oauth2 相关的其他问题
我一直使用的选项是部署一个包含您的网络静态内容的配置文件,并在其中包含Public Open Id Connect Settings。
这是我的代码示例中的 example configuration file。当然,任何人都无法根据这些信息获得令牌 - 您还需要有效凭证。
UI 和 API 等组件通常会被推送到管道中:
- 发展
- 质量检查
- 分期
- 制作
您的持续交付流程可以处理向管道的每个阶段交付不同的设置。这样您的代码就干净了,从不包含任何硬编码值。
我按照此 link 允许我的用户通过 google 进行身份验证:
https://dev.to/jorgecf/integrating-google-authentication-with-your-angular-app-4j2a
但是,我的 UI 代码中必须包含我的 Google 客户端 ID:
return pload.then(async () => {
await gapi.auth2
.init({ client_id: 'abc123' }) // Put my client ID here. How should I store this?
.then(auth => {
this.gapiSetup = true;
this.authInstance = auth;
});
});
这是安全问题吗?如果是这样,where/how 我会存储它吗?
我收到了类似的问题,所以我认为这是一个有效的问题。
Oauth2 流程需要 client_id int 浏览器,因此不是安全问题。
为什么? :因为这就是 OAUTH2 SPECIFICATION
的定义方式为什么需要 client_id?
您的 angular 代码需要 client_id 来生成 auth url 然后执行重定向到那个 url .无论 oauth2 提供程序(google、facebook 等)如何,url 都具有以下语法:
https://auth.acme.com/auth?response_type=code&redirect_uri=https://myweb.com/callback&client_id=******
Note redirect_uri and client_id fields.
此 auth url 负责显示登录表单、接收凭据并执行重定向到 redirect_uri 发送 代码 值
什么是问题?
在您的前端(angular) 中设置秘密将是安全问题。
此机密必须与客户端 ID 和其他字段一起使用,以从 google 检索您的案例中的 access_token。如果您拥有正确的权限,此令牌将允许您使用 google api(驱动器、地图等)。
这个流程必须在你的后台
怎么偏隐藏呢?
在您的后端创建 auth url 并使用 302 http 代码 return 它到您的前端。浏览器将执行即时重定向。
我说的是部分,因为好奇的伙伴可以停止重定向(esc 键)或使用浏览器控制台并查看您的 auth url 其中包含 client_id 字段
欢迎使用此聊天室https://chat.whosebug.com/rooms/215054/oauth2-budy 提出与 oauth2 相关的其他问题
我一直使用的选项是部署一个包含您的网络静态内容的配置文件,并在其中包含Public Open Id Connect Settings。
这是我的代码示例中的 example configuration file。当然,任何人都无法根据这些信息获得令牌 - 您还需要有效凭证。
UI 和 API 等组件通常会被推送到管道中:
- 发展
- 质量检查
- 分期
- 制作
您的持续交付流程可以处理向管道的每个阶段交付不同的设置。这样您的代码就干净了,从不包含任何硬编码值。