screwdriver-api
Version:
API server for the Screwdriver.cd service
53 lines (35 loc) • 1.01 kB
Markdown
# Authentication Plugin
> Hapi auth plugin for the Screwdriver API
## Usage
### Register plugin
```javascript
const Hapi = require('@hapi/hapi');
const server = new Hapi.Server();
const authPlugin = require('./');
server.connection({ port: 3000 });
server.register({
register: authPlugin,
options: {}
}, () => {
server.start((err) => {
if (err) {
throw err;
}
console.log('Server running at:', server.info.uri);
});
});
```
### Routes
#### Login (and redirect to token)
This will generate a cookie with the JWT in it.
- OAuth: `GET /auth/login/{scmContext}` or `POST /auth/login/{scmContext}`
- Token: `GET /auth/login/key?token=YOUR_API_TOKEN`
- Guest: `GET /auth/login/guest`
#### Get a token
`GET /auth/token` (with OAuth) or `GET /auth/token?api_token=YOUR_API_TOKEN` (with API token)
#### Get a public key for verifying JSON Web Tokens (JWTs)
`GET /auth/key`
#### Logout
`POST /auth/logout`
#### Get all scm contexts
`GET /auth/contexts`