Support SASL2 FAST authentication#840
Open
kousu wants to merge 4 commits into
Open
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
FAST is a cookie-style authentication method that lets clients store and auth with an unguesseable token. It enables clients to forget the user's full password, which is especially important for web-based clients, that are prone to data leaks. Leaked tokens can be invalidated.
This my second attempt, and supersedes #839 .
Intended to fix conversejs/converse.js#3144
Some aside changes I needed for this:
Testing
On a prosody server, set these
modules_enabled:Make or pick a test account on your server to test with.
Then run the client with:
Edit converse.js/dev.html to change the prefilled username to match your server (or just be ready to type it in)
TODO:
Potential follow ups:
rewrite the SASL code into an event-based
src/sasl.jsto make it look likesrc/sasl2.jsallow fallback from SASL2 to SASL and between SASL methods
(currently assumes only ONE login method will be tried per connect(), which could block login if one is failing)