UPDATE JUL 10, 2020: It has come to my attention that implementing the Facebook login flow without using their SDK is against their terms of service for third-party applications, further confirming that Facebook is more interested in gathering data about an app's users than it is in providing a useful service (shocker).