如何解决在 keyclok-Angular 中设置客户端机密
我无法在 keyClock 的配置对象中设置客户端机密
function initializeKeycloak(keycloak: KeycloakService) {
return () =>
keycloak.init({
config: {
url: 'http://localhost:8080/auth',realm: 'your-realm',clientId: 'your-client-id',client-secret: 'xxxxxxxxxxx' <-- problem
},initOptions: {
onLoad: 'check-sso',silentCheckSsoRedirectUri:
window.location.origin + '/assets/silent-check-sso.html',},});
}
我们可以在哪里设置 clicnt-secret? 请帮我解决 谢谢
解决方法
当最终用户可能查看和修改代码时,客户端应用程序被视为公共应用程序。这包括单页应用程序 (SPA) 或任何移动或本机应用程序。在这两种情况下,应用程序都无法对恶意用户保密。
所以你的 Angular 代码是公开的,它不能保守任何秘密。不要在那里保存任何机密,而是使用公共 OIDC 客户端和为此指定的 Authorization Code Flow with PKCE
。
请阅读使用过的库的文档以了解更多详细信息。只是想法(不是完整的工作复制和粘贴代码!):
function initializeKeycloak(keycloak: KeycloakService) {
return () =>
keycloak.init({
config: {
url: 'http://localhost:8080/auth',realm: 'your-realm',clientId: 'your-client-id'
},initOptions: {
checkLoginIframe: false,pkceMethod: 'S256'
onLoad: 'login-required'
},});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。