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
的ClientInfo
emqx_authn_jwt:authenticate(ClientInfo,State).
如此便可调用内置认证模块获得认证结果。