Begin requiring OAuth for search engine checks.
This adds an extra validation step in checker.py.
It occurs after a cached result is checked for, which
allows unauthenticated viewers to still preview cached
results.
Adds the initial backend requirements for the
OAuth flow, which will be made required for all
search engine checks. This adds three new routes:
- `/login` (GET, POST) - for logging in
- `/logout` (GET, POST) - for logging out
- `/oauth-callback` - OAuth 1.0a callback route
Login/logout state can be checked through the
header. By default, a separate page navigation is
not required when the link is clicked by the user.
When following a link to `/log(in|out)`, however,
an extra button will be shown to prevent inadvertent
logins/logouts.