Mercurial > prosody-modules
comparison mod_auth_oauth_external/mod_auth_oauth_external.lua @ 5440:82a14082be3f
mod_auth_oauth_external: Allow different username in PLAIN vs final JID
Mastodon for example having email addresses usernames in login, but a
different username in the service itself.
Thanks to @tcit@social.tcit.fr for the pointer to a usable validation
endpoint for Mastodon, allowing this to be tested.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 10 May 2023 13:52:31 +0200 |
parents | 721f79ac88d8 |
children | 7480dde4cd2e |
comparison
equal
deleted
inserted
replaced
5439:721f79ac88d8 | 5440:82a14082be3f |
---|---|
69 end | 69 end |
70 if not (ret.code >= 200 and ret.code < 300) then | 70 if not (ret.code >= 200 and ret.code < 300) then |
71 return false, nil; | 71 return false, nil; |
72 end | 72 end |
73 local response = json.decode(ret.body); | 73 local response = json.decode(ret.body); |
74 if type(response) ~= "table" or (response[username_field]) ~= username then | 74 if type(response) ~= "table" then |
75 return false, nil, nil; | |
76 elseif type(response[username_field]) ~= "string" then | |
75 return false, nil, nil; | 77 return false, nil, nil; |
76 end | 78 end |
79 self.username = jid.escape(response[username_field]); | |
77 self.token_info = response; | 80 self.token_info = response; |
78 return true, true; | 81 return true, true; |
79 end | 82 end |
80 end | 83 end |
81 if validation_endpoint then | 84 if validation_endpoint then |