I saw the banner on meta.discourse.org saying that my Facebook social login would be removed, recommending that I switch to Discourse ID. So, I clicked the link to Discourse ID and tried Sign in with Facebook, and it failed.
It looks like your Facebook settings are incorrect. Since login with Facebook doesn’t work yet, I think y’all should extend the November 30 deadline.
Thanks for the report, Dan. I was able to log in using my Facebook account, but I see that App Review processes have changed, we need to provide some details on how we use Facebook’s AI. That is now done and we are waiting for review. Our Facebook app doesn’t do anything special, it only enables login via Facebook, but nonetheless, Meta (Facebook) needs to review. Hopefully they do this soon.
We will look into extending the deadline for this here on meta depending on how quickly that review goes through.
A common gotcha with Facebook Login is that it will work for users who are listed on Facebook’s admin settings as “developers” of the Facebook app, but not work for the general public.
I believe you would be able to reproduce the problem by following Facebook’s guide to testing Facebook Login.
Now it prompts for name and email, or, if you’ve already logged in with Facebook, “You previously logged into Discourse Login (Discourse ID) with Facebook. Would you like to continue?”
If I follow those steps, I get sent to the homepage of id.discourse.com, I don’t get redirected to meta. I get logged in to ID and shown the ID homepage.
Unless, there’s something lingering from a previous meta login attempt for you… Can you repro this on a different browser?
Thanks, I can reproduce under certain conditions, I think I can see what is happening.
When a user starts an authentication from meta, we store a value for destination_url on the ID instance so that after authentication, the user can be taken back to where they were. But when the authentication isn’t completed within a short amount of time (it fails or user abandons auth), that destination_url is not cleaned up, it stays in the user’s browser session. The next time the user tries to log in, ID tries to redirect to that URL, but since it has an old code/state combination from the original auth flow, the redirect results in the “Sorry, the authorization timed out” error.
It should not redirect at all after a short amount of time, we need to make sure that the destination_url value gets cleaned up after 10 mins, I believe the code/state combo for authentication is only valid for 10 minutes, need to double check.