keycloak javascript适配器请求离线令牌
Posted
技术标签:
【中文标题】keycloak javascript适配器请求离线令牌【英文标题】:keycloak javascript adapter request offline token 【发布时间】:2016-05-18 03:45:57 【问题描述】:我有一个 js 应用程序,我使用带有公共客户端和标准流程的 keycloak 1.7-final javascript 适配器,它工作正常,但现在我想为应用程序添加离线功能,但不知道如何获取离线令牌。根据documentation,客户端可以通过在向Keycloak发送授权请求时添加参数“scope=offline_access”来请求离线令牌。 问题是我不知道在哪里添加参数。我尝试添加到“keycloak.config”和“keycloak.init”,但它不起作用。
在 keycloak.config 中:
keycloak:
url: 'link omitted',
realm: 'sisdn-realm',
clientId: 'sisdn',
redirect_uri: 'link omitted',
flow: 'standard',
'enable-cors': true,
scope: 'offline_access'
在 keycloak.init 中
const keycloakConf = require('keycloak')//this is the same config above
var keycloak = new keycloakConf(config.keycloak)
keycloak.init(
onLoad: 'login-required',
checkLoginIframe: false,
scope: 'offline_access'
)
.success(authenticated =>
if(!authenticated)
dispatch(loginFailure())
else
global.keycloak = keycloak
dispatch(loginSuccess())
)
【问题讨论】:
您必须在授权请求本身中直接添加“scope=offline_access”。你能添加你用来发送请求的代码吗? 这是授权请求本身,您可以从我的编辑中看到这是我用来发出请求的内容 文档引用了一个offline-access-app
的例子,你看了吗?
是的,它的 java 应用程序将 scope=offline_access 直接添加到查询参数,但我看不出它对 javascript 适配器有何帮助
我会把这个问题放在 github 存储库中的问题中,但有趣的是存储库中没有问题选项卡
【参考方案1】:
来自JS adapter code:
init
方法不接受 scope
选项,但 login
方法可以。
【讨论】:
你是对的范围选项所以我必须使用 init() 然后在回调中我调用 login 如果用户没有登录,谢谢。 @mhashim 你能发布你的解决方案吗?你怎么能 init() 没有登录,所以你可以请求离线访问?以上是关于keycloak javascript适配器请求离线令牌的主要内容,如果未能解决你的问题,请参考以下文章
带有令牌的Keycloak javascript适配器初始化不起作用?
KeyCloak - Javascript 和 Spring 启动应用程序
如何通过 Java/Kotlin API 从 KeyCloak 请求 JWT 令牌