Symfony's authentication is definitely powerful, but if you need to do something complex, you might pull your hair out.
Introducing KnpUGuard authentication, which puts all the complexities of any authentication scheme right at your finger-tips. The code you right will be easy to understand and customizing things to any whim will be simple:
If all goes well, Guard will become a core part of Symfony. If you like it, let people know it worked for you at symfony/symfony#14673. And if it doesn't cover a use-case, open an issue and let me know!