从 NodeJS 中的 keycloak 会话获取用户名

2023-11-22

有没有类似的东西:

request.getUserPrincipal().getName()       // Java

在Node中我们使用时获取用户名连接钥匙斗篷使用快速中间件?


我也遇到了这个问题。

我确实深入研究了中间件代码并试图找到类似的东西。事实证明,request对象被修改并附加kauth.grant.

console.log('req.kauth.grant')打印出:

{
access_token: {
    token: 'kasdgfksj333',
    clientId: 'mobile',
    header: {
        alg: 'RS256'
    },
    content: {
        jti: '33389eb6-3611-4de2-b913-add9283c3de0',
        exp: 1464883174,
        nbf: 0,
        iat: 1464882874,
        iss: 'http://docker:9090/auth/realms/test',
        aud: 'test-client',
        sub: '333604a0-b527-4afb-a04e-5e4ebf06ce9c',
        typ: 'Bearer',
        azp: 'test-client',
        session_state: '1cd35952-8e42-44f1-ad15-aaf9964bfefa',
        client_session: '943f1213-f556-4021-bbc6-2355146ab955',
        'allowed-origins': [],
        resource_access: [Object],
        name: 'Test User',
        preferred_username: 'user',
        given_name: 'Test',
        family_name: 'User',
        email: '[email protected]'
    },
    signature: < Buffer 45 1 b 3 d d7 4 f f9 d1 63 44 ad a9 ca b8 c4 67 88 ba e9 5 d 64 8 d a0 a9 75 a1 79 cf 18 52 d5 f7 f0 08 71 1 d 79 bd 59 e9 5 a f8 25 72 dd e5 06 71 4 f b7 f1 47... > ,
    signed: 'eyJhbGcfOiJSUzf1NiJ9.eyJqdGkiOsJmYmY4OWViwi0zNjExLTrkZTItYjkxMy1hZGQ5MjgzYzNkZTAiLCJleHAiOjE0NjQ4ODMxNzQsIm5iZiI6MCwiaWF0IjoxNDY0ODgyODc0LCJpc3MiOiJodHRwOi8vZG9ja2VyaG9zdDo5MDgwL2F1dGgvcmVhbG1zL3JoY2FycyIsImF1ZCI6InJoY2Fycy12ZWhpY2xlLW93bmVyLWlvcyIsInN1YiI6IjkxMjYwNGEwLWI1MjctNGFmYi1hMDRlLTVlNGViZjA2Y2U5YyIsInR5cCI6IkJlYXJlciIsImF6cCI6InJoY2Fycy12ZWhpY2xlLW93bmVyLWlvcyIsInNlc3Npb25fc3RhdGUiOiIxY2QzNTk1Mi04ZTQyLTQ0ZjEtYWQxNS1hYWY5OTY0YmZlZmEiLCJjbGllbnRfc2Vzc2lvbiI6Ijk0M2YxMjEzLWY1NTYtNDAyMS1iYmM2LTIzNTUxNDZhYjk1NSIsImFsbG93ZWQtb3JpZ2lucyI6W10sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50Iiwidmlldy1wcm9maWxlIl19fSwibmFtZSI6IlRlc3QgVXNlciIsInByZWZlcnJlZF91c2VybmFtZSI6IjEyMzEyMyIsImdpdmVuX25hbWUiOiJUZXN0IiwiZmFtaWx5X25hbWUiOiJVc2VyIiwiZW1haWwiOiJmb29iYXJ1c2VyQGFyY29uc2lzLmNvbSJ9'
},
refresh_token: undefined,
id_token: undefined,
token_type: undefined,
expires_in: undefined,
__raw: '{"access_token":"eyJhbGciOiJSUzI3NiJ2.eyJqdGki4iJmYmY4OWriNi0zNjExLTRkZTItYjkxMy1hZGQ5MjgzYzNkZTAiLCJleHAiOjE0NjQ4ODMxNzQsIm5iZiI6MCwiaWF0IjoxNDY0ODgyODc0LCJpc3MiOiJodHRwOi8vZG9ja2VyaG9zdDo5MDgwL2F1dGgvcmVhbG1zL3JoY2FycyIsImF1ZCI6InJoY2Fycy12ZWhpY2xlLW93bmVyLWlvcyIsInN1YiI6IjkxMjYwNGEwLWI1MjctNGFmYi1hMDRlLTVlNGViZjA2Y2U5YyIsInR5cCI6IkJlYXJlciIsImF6cCI6InJoY2Fycy12ZWhpY2xlLW93bmVyLWlvcyIsInNlc3Npb25fc3RhdGUiOiIxY2QzNTk1Mi04ZTQyLTQ0ZjEtYWQxNS1hYWY5OTY0YmZlZmEiLCJjbGllbnRfc2Vzc2lvbiI6Ijk0M2YxMjEzLWY1NTYtNDAyMS1iYmM2LTIzNTUxNDZhYjk1NSIsImFsbG93ZWQtb3JpZ2lucyI6W10sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50Iiwidmlldy1wcm9maWxlIl19fSwibmFtZSI6IlRlc3QgVXNlciIsInByZWZlcnJlZF91c2VybmFtZSI6IjEyMzEyMyIsImdpdmVuX25hbWUiOiJUZXN0IiwiZmFtaWx5X25hbWUiOiJVc2VyIiwiZW1haWwiOiJmb29iYXJ1c2VyQGFyY29uc2lzLmNvbSJ9.RRs910_50WNEranKuMRniLrpXWSNoKl1oXnPGFLV9_AIcR15vVnpWvglct3lBnFPt_FH6QPJTmp7i-8mRTIDoIL8jtmEtJ8VfE2ZYX5WN3RlxPFQc5kCOZUQiV55eZALOCSTpm2HIw1eLhBVs4Is8RMJoWy8xj3k4pkOqqll8NY__TJdTG7Iihj0lReblyaW34OpSxkAYoqYaayox0H_7UbnpSAIL0BqBL41lDPH4mXouUX3i0fFbLOt_MnAtPrdFYTez7OVmKhZx7gavdQEkHEGK8thgagnCrycejUqTO0YUeOsasQ2NK9KLPBIEA0eX_p2l2yDYhlJR15stQ3AHA"}',
store: [Function],
unstore: [Function]
}

当然 - 这对开发人员不友好,但您可以通过以下方式访问用户名req.kauth.grant.access_token.content.preferred_username。这导致user.

我将将此作为一个问题报告给主要贡献者。 (keycloak中间件的Github Repohttps://github.com/keycloak/keycloak-nodejs-connect)

UPDATEkeycloak项目的主要贡献者刚刚回答了我。如果您发现任何其他问题 - 请在此处解决:https://issues.jboss.org/projects/KEYCLOAK

对于 Node.js 适配器:https://issues.jboss.org/browse/KEYCLOAK-2833?jql=project%20%3D%20 KEYCLOAK%20AND%20component%20%3D%20%22 适配器%20-%20Node.js%22

更新 2:2021 年 3 月 15 日现在报告 keycloak 中间件的问题需要 RedHat 用户帐户。由于该线程似乎仍然处于活动状态,并且我不再关注该主题(已经过去了很多时间),因此我只能建议在那里设置一个帐户报告错误。

https://issues.jboss.org/projects/KEYCLOAK

希望我能帮忙。

Cheers
Orlando

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 NodeJS 中的 keycloak 会话获取用户名 的相关文章

随机推荐

Powered by Hwhale