我有一个SPA,其后端API受Keycloak保护。我想允许SPA用户以编程方式而不是仅通过SPA针对API执行操作。通常,应用程序将允许用户“创建API密钥”并针对API执行操作。
使用Keycloak的推荐方法是什么?
我目前的计划是在公共客户端上启用直接访问授权(资源所有者密码凭据授权),并指示SPA用户通过以下方式检索访问令牌:
curl -u public-client: -X POST \
https://keycloak.url/auth/realms/REALM/protocol/openid-connect/token \
-d 'grant_type=password&username=USER&password=PASSWORD'
然后,用户可以使用其访问令牌访问API。它可以工作,但是感觉不太正确。
有没有更好的方法?预先感谢!
答案 0 :(得分:0)
您的SPA只是API的另一个客户端,所有客户端都经过相同的登录过程。唯一的区别是将身份验证令牌存储在哪里,使用SPA,浏览器将使用API将它们存储在API中
有关api登录的更多信息,请参见此帖子: Login to Keycloak using API