Lauri Ojansivu 1e4fba3ec8 Added back autologin, because reverting it broke Google OIDC login. 2 gadi atpakaļ
..
.gitignore 00768b4392 Added back WeKan lockout, ldap, oidc, cas. 3 gadi atpakaļ
LICENSE.txt 00768b4392 Added back WeKan lockout, ldap, oidc, cas. 3 gadi atpakaļ
README.md 00768b4392 Added back WeKan lockout, ldap, oidc, cas. 3 gadi atpakaļ
oidc.js 1e4fba3ec8 Added back autologin, because reverting it broke Google OIDC login. 2 gadi atpakaļ
oidc_login_button.css 00768b4392 Added back WeKan lockout, ldap, oidc, cas. 3 gadi atpakaļ
package.js 00768b4392 Added back WeKan lockout, ldap, oidc, cas. 3 gadi atpakaļ

README.md

salleman:accounts-oidc package

A Meteor login service for OpenID Connect (OIDC).

Installation

meteor add salleman:accounts-oidc

Usage

Meteor.loginWithOidc(options, callback)

  • options - object containing options, see below (optional)
  • callback - callback function (optional)

Example

Template.myTemplateName.events({
  'click #login-button': function() {
    Meteor.loginWithOidc();
  }
);

Options

These options override service configuration stored in the database.

  • loginStyle: redirect or popup
  • redirectUrl: Where to redirect after successful login. Only used if loginStyle is set to redirect

Manual Configuration Setup

You can manually configure this package by upserting the service configuration on startup. First, add the service-configuration package:

meteor add service-configuration

Service Configuration

The following service configuration are available:

  • clientId: OIDC client identifier
  • secret: OIDC client shared secret
  • serverUrl: URL of the OIDC server. e.g. https://openid.example.org:8443
  • authorizationEndpoint: Endpoint of the OIDC authorization service, e.g. /oidc/authorize
  • tokenEndpoint: Endpoint of the OIDC token service, e.g. /oidc/token
  • userinfoEndpoint: Endpoint of the OIDC userinfo service, e.g. /oidc/userinfo
  • idTokenWhitelistFields: A list of fields from IDToken to be added to Meteor.user().services.oidc object

Project Configuration

Then in your project:

if (Meteor.isServer) {
  Meteor.startup(function () {
    ServiceConfiguration.configurations.upsert(
      { service: 'oidc' },
      {
        $set: {
          loginStyle: 'redirect',
          clientId: 'my-client-id-registered-with-the-oidc-server',
          secret: 'my-client-shared-secret',
          serverUrl: 'https://openid.example.org',
          authorizationEndpoint: '/oidc/authorize',
          tokenEndpoint: '/oidc/token',
          userinfoEndpoint: '/oidc/userinfo',
          idTokenWhitelistFields: []
        }
      }
    );
  });
}