Quick Start
Creating the Application
The API requests and the JavaScript SDK require a client ID and for some features a client secret, to obtain those you need to create an application using the Vulos Identity dashboard.
You can do that by clicking on the "New Application" link in the left navigation bar and by filling in some details.
In the "Redirect URLs" field you need to specify the link of the callback URL that we will define later on, for now set it to http://localhost:8080/callback
or http://localhost:8080/index.html
if you want to implement the browser application flow.
And you need to add the openid
scope, for more detailed information about the scopes, take a look at the Scopes and Claims.
Install the library
The best way to interact with our API is to use one of our official libraries:
npm install @vulos/identity-node-sdk --save
Setting up the OpenID flow
You need to create an application object that matches the application you just created in the dashboard.
import { Application, User } from "@vulos/identity-base"
const application = new Application({
id: "<paste your_client id here>",
// if you made a browser application remove this property
secret: "<paste your client secret here>",
scope: "openid",
redirectUrls: ["<your website's callback URL>"]
})
import { BackendAuth } from "@vulos/identity-node-sdk"
const auth = application.createAuth(BackendAuth)
await auth.connect()
Then you need to create a route for the callback URL (in this example we are going to assume that you use express
) and a route that redirects the user to the login / consent screen:
import express from "express"
const app = express()
// it is recommended that you generate a verifier per auth
// request and that you store this in a database or cache
// instead of storing it in a global variable
const verifier = auth.createVerifier()
app.get("/callback", async (req, res) => {
const user = await auth.processCallback(verifier, req.)
// you probably want to store this in a database instead
return res.redirect("/action?tokens=" + JSON.stringify(user.save()))
})
app.get("/login", async (req, res) => {
// you can also render this is a button instead of a redirect
return res.redirect(await auth.createAuthUrl(verifier))
})
// this is an example endpoint that uses the api
// it will return a JSON response with the id of the user
app.get("/action", async (req, res) => {
const user = new User(auth, JSON.parse(req.query['tokens']))
const userInfo = await user.info()
return res.json(userInfo.id())
})
Further reading
After you have a basic app up and running, you can add functionality based on your requirements by adding more scopes and accessing more of the API.
For information about some concepts used in Vulos Identity we suggest reading:
OrganizationsScopes and ClaimsFor documentation about the JavaScript SDK we suggest reading:
Identity JavaScript SDKLast updated