New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

discourse-sso

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

discourse-sso

Single-sign-on helper package for Discourse

latest
Source
npmnpm
Version
1.0.5
Version published
Maintainers
1
Created
Source

Single-sign-on for Discourse via Node.js

Node.js CI

Also available for PHP here.

This is a small class to help with providing an SSO source for Discourse forums. It provides three helper functions for validating incoming requests, extracting the nonce, and building the returning queryString.

For more information on the SSO settings in Discourse, visit https://meta.discourse.org/t/official-single-sign-on-for-discourse/13045

How to use the package

Simply install via npm, require the package and create a new object, providing the SSO secret defined in Discourse

var discourse_sso = require('discourse-sso');
var sso = new discourse_sso("-your-sso_secret-goes-here-");

To validate incoming logins, you can do:

var payload = ... // fetch from incoming request
var sig = ... // fetch from incoming request
if(sso.validate(payload, sig)) {
}

To extract the nonce (the little piece of data that identifies the login), use:

var nonce = sso.getNonce(payload);

Then, to produce the query string that is to be sent back to Discourse, do:

var userparams = {
	// Required, will throw exception otherwise
	"nonce": nonce,
	"external_id": "some user id here",
	"email": "some user email",
	// Optional
	"username": "some username",
	"name": "some real name"
};
var q = sso.buildLoginString(userparams);

Lastly, to complete the login process, redirect back to Discourse with the query string. For example:

res.redirect('http://discourse.example.com/session/sso_login?' + q);

License

MIT

Keywords

discourse

FAQs

Package last updated on 12 Jun 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts