You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SteveTheEngineer 1e2c2edab6
Catch the error before the response is processed by goth. (#20000)
The code introduced by #18185 gets the error from response after it was processed by goth.

That is incorrect, as goth (and golang.org/x/oauth) doesn't really care about the error, and it sends a token request with an empty authorization code to the server anyway, which always results in a `oauth2: cannot fetch token: 400 Bad Request` error from goth.
It means that unless the "state" parameter is omitted from the error response (which is required to be present, according to [RFC 6749, Section 4.1.2.1](https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.2.1)) or the page is reloaded (makes the session invalid), a 500 Internal Server Error page will be displayed.
This fixes it by handling the error before the request is passed to goth.
2 years ago
..
2fa.go Refactor auth package (#17962) 3 years ago
auth.go Prevent NPE when cache service is disabled (#19703) 2 years ago
linkaccount.go Move almost all functions' parameter db.Engine to context.Context (#19748) 2 years ago
main_test.go Use a struct as test options (#19393) 2 years ago
oauth.go Catch the error before the response is processed by goth. (#20000) 2 years ago
oauth_test.go Use DisplayName() instead of FullName in Oauth provider (#19991) 2 years ago
openid.go Move almost all functions' parameter db.Engine to context.Context (#19748) 2 years ago
password.go Prevent NPE when cache service is disabled (#19703) 2 years ago
webauthn.go Update HTTP status codes to modern codes (#18063) 2 years ago