PressPass is a single sign-on service made for and by journalists. It allows journalists to create one account to access all of the tools they use to do their work. For developers, this means PressPass can serve as your user authentication backend. We’ve made that as simple as possible, with starters and examples for most popular languages and authentication libraries.
PressPass uses OpenID Connect, a protocol built on OAuth 2.0, to authenticate users. This is a popular protocol used by many authentication providers, including Google. To setup your application to use PressPass as a login provider, you need to register your application as a third-party client with us at presspass.it. Follow the instructions below.
- Create a PressPass account at presspass.it.
- Once logged in, navigate to the developer section via the navigation bar.
- Create a new client.
- Give your client the following settings:
- Name: the name of your application
- Auth type: public
- Website: the login route to your application. The PressPass dashboard will use this URL to log users in to your application automatically when they click on your application.
- Terms of service: If applicable, a URL to your terms of service.
- Contact email: An email address for someone we can contact about your application
- Logo: a logo for your application that users will see in their dashboard
- Redirect links: Where users should go in your application after they receive a token from PressPass. This will likely be a URL like
http://mywebsite.com/auth/complete/presspass
. - Post-logout redirects: Where users should go in your application after they logout.
- Copy your PressPass Client ID and store it somewhere accessible. You will need this for your application.
Now you’re ready to set up your own application to use PressPass login. To help you, we have a few libraries in popular languages to make this process as plug-and-play as possible. Find your language and supported plug-in for documentation on how to implement.
- Python: [social-auth-presspass]
- Node.js: [passport-presspass]
- Ruby: [devise-presspass]
- Go: [goth-presspass]