emqx版本:5.4
现象:emqx插件开发,on_client_authenticate 优先级设置为HP_LOWEST,jwt认证成功之后,不会触发该hook的调用。
问题:
1、认证链中只要有一种provider认证成功,就不会再调用后续的hook了是吗?
2、如何在hook中调用emqx已有的jwt的认证功能?比如如何获取provider,如何获取provider的config,如何调用对应provider的authenticate方法?
感谢指导!
emqx版本:5.4
现象:emqx插件开发,on_client_authenticate 优先级设置为HP_LOWEST,jwt认证成功之后,不会触发该hook的调用。
问题:
1、认证链中只要有一种provider认证成功,就不会再调用后续的hook了是吗?
2、如何在hook中调用emqx已有的jwt的认证功能?比如如何获取provider,如何获取provider的config,如何调用对应provider的authenticate方法?
感谢指导!
调用内置的认证方法:
emqx_authn_chains:list_authenticators('mqtt:global'). {ok,[#{id => <<"jwt">>,...,provider => emqx_authn_jwt}]}{ok,#{state:=State}}=emqx_authn_chains:lookup_authenticator('mqtt:global',<<"jwt">>).ClientInfo 是 on_client_authenticate的ClientInfoemqx_authn_jwt:authenticate(ClientInfo,State).如此便可调用内置认证模块获得认证结果。