Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 从NodeJS中的keydape会话获取用户名_Node.js_Express_Keycloak - Fatal编程技术网

Node.js 从NodeJS中的keydape会话获取用户名

Node.js 从NodeJS中的keydape会话获取用户名,node.js,express,keycloak,Node.js,Express,Keycloak,是否有类似的情况: request.getUserPrincipal().getName() // Java 当我们使用express中间件时,在节点中获取用户名?我也提出了这个问题 我确实深入研究了中间件代码,并试图找到类似的东西。结果是,请求对象被修改并附加了kauth.grant console.log('req.kauth.grant')打印出: { access_token: { token: 'kasdgfksj333', clientId: 'mobi

是否有类似的情况:

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

当我们使用express中间件时,在节点中获取用户名?

我也提出了这个问题

我确实深入研究了中间件代码,并试图找到类似的东西。结果是,
请求
对象被修改并附加了
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: 'foo@bar.com'
    },
    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]
}
{
访问令牌:{
标记:“kasdgfksj333”,
clientId:'移动',
标题:{
alg:'RS256'
},
内容:{
jti:'33389eb6-3611-4de2-b913-add9283c3de0',
出口:1464883174,
nbf:0,
iat:1464882874,
iss:'http://docker:9090/auth/realms/test',
aud:'测试客户端',
子条款:“333604a0-b527-4afb-a04e-5e4ebf06ce9c”,
类型:“持票人”,
azp:“测试客户端”,
会话状态:“1cd35952-8e42-44f1-ad15-aaf9964bfefa”,
客户会话:“943f1213-f556-4021-bbc6-2355146ab955”,
“允许的来源”:[],
资源访问:[对象],
名称:“测试用户”,
首选用户名:“用户”,
给定名称:“测试”,
家族名称:“用户”,
电邮:'foo@bar.com'
},
签名:,
签署:“EYJHBGCFOIJZZF1NIJ9.EYJQDGIOSJMY4OWVI0ZNJEXLTRKZITYJKXMY1HZGQ5MJGZKZTAILCJLEHAIOJJQ4ODMxNZQSIM5IZIII6MCW0I0I0OxNdY0OdGdG9JAVYAG9ZDO5MDGL2GGVCMVHBG1ZL3ZL2ZL2Y2Y2Y2Y2ZY2Y2Y2ZY2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y2Y22.2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ZF91C2VYBMFTZSI6IJEYMZEYMYIMDPDMVux25HBWuIoIuZxN0IIWIZMTAWX5HBWuIoIjVc2VyIwizW1HawwioiJMB29IyXJ1C2VyQgfy29UC2LzLmnVBSJ9'
},
刷新令牌:未定义,
id_标记:未定义,
令牌类型:未定义,
expires_in:未定义,
__原始:“{”访问令牌”:"Eyjhbgcioijsuzi2.Eyjqdgki4ijmy4owrini0znjexltrkzttyjkxmy1hzgq5jgzznkztailcjaijaijaizyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzyzy2月2日,2月2日,2月2日,2月2日,2月2日,2月2日,2月2日,2月2日,2月2日,2月2日,2月2月2日,2月2日,2月2日,2月2日,2月2日,2月2日,2月2日,2月2日,2月2日,2月2日,2月2月2日,2月2日,2月2日,2月2月2日,2月2日,2月2月2日,2月2月2日,2日,2日,2日,2月2月2日,2月2月2日,2月2日,2月2月2日,2日,2月2日,2月2月2日,2日,2月2日,2月2月2月2月2日,2日,2月2月2月2月2日,2月2日,2日,2月2日,MFTZ6月6日,我在一份6月6日的研究报告中提出了一份6月6月6日的研究,他们在一份6月6日的研究报告中提出了一份关于2月6日的研究。2月6日,他们在一份6月6日的研究报告中提出了一份6月6月6日的研究。6月6日,他们在一份2月6日的2月6日的2月6日,他们在一份2月2月6日的2月2日的2月6日,他们在一份ZZZLLVVVVVZZZZZZVVVVVVVVVVZZZVVVVVVVVVVVVVVVVV6.6.2.2.6.2.2.2.2.2.2.2.2.2.2。9.2.2.2.2.2.2.2.2.2.2.6.2.2.2.2.U 7UbnpSAIL0BqBL41lDPH4mXouUX3i0fFbLOt_mnatprdfytez7ovmkhzx7gavdqekhegk8thgangncycejuqto0yuosasq2nk9klpbiea0ex_p2l2yDYhlJR15stQ3AHA“,
存储:[函数],
取消存储:[函数]
}
当然-这对开发人员不友好,但您可以通过
req.kauth.grant.access\u token.content.preferred\u username
。这将导致
user

我将向主要出资人报告这一问题。 (KeyClope中间件的Github回购)

更新 Key斗篷项目的主要贡献者刚刚回答了我。如果您发现任何其他问题,请在此处解决:

对于node.js适配器:

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

希望我能帮忙

干杯
奥兰多

我不是Java开发人员,但您是否在问是否有方法将值从中间件传递到在路由中被调用的下一个函数/类?+1我们还需要从JWT令牌获取用户信息。此时我们再次解析承载者…不是很好。也许我们应该提出一个问题-如果他们在github;)谢谢,这一点都没有记录。有趣的是,5年后这方面有什么进展吗?目前获得的用户id为
req.kauth.grant.access\u token.content.jti
-看起来很笨拙。