Services

A Service provides server functionality beyond basic manipulation of resources.

Authentication

Several endpoint handle user authentication.

https://browsersupports.org/auth is an HTML page that shows the user’s current authentication status, and includes a button for starting a Persona login.

One endpoint implements Persona logins. See the Persona Quick Setup for details:

  • /auth/persona/login - Exchanges a Persona assertion for a login cookie. If the email is not on the system, then a new user resource is created. If the user has not accepted the latest version of the contribution agreement, then they are redirected to a page to accept it. Otherwise, they are redirected to /auth.

Four endpoints are used for OAuth2 used to exchange Persona credentials for credentials usable from a server:

  • /auth/oauth2/authorize
  • /auth/oauth2/authorize/confirm
  • /auth/oauth2/redirect
  • /auth/oauth2/access_token

A final endpoint is used to delete the credential and log out the user:

  • /auth/logout

Browser Identification

The /browser_ident endpoint provides browser identification based on the User Agent and other parameters.

Two potential sources for this information:

This endpoint will probably require the browser to visit it. It will be further speced as part of the UX around user contributions.