Allemand Sylvain 7 роки тому
батько
коміт
1c8a00943c
3 змінених файлів з 31 додано та 0 видалено
  1. 1 0
      .meteor/packages
  2. 11 0
      models/users.js
  3. 19 0
      server/authentication.js

+ 1 - 0
.meteor/packages

@@ -31,6 +31,7 @@ kenton:accounts-sandstorm
 service-configuration@1.0.11
 useraccounts:unstyled
 useraccounts:flow-routing
+salleman:accounts-oidc
 
 # Utilities
 check@1.2.5

+ 11 - 0
models/users.js

@@ -459,6 +459,17 @@ if (Meteor.isServer) {
       return user;
     }
 
+    if (user.services.oidc) {
+      user.username = user.services.oidc.username;
+      user.emails = [{
+                               address: user.services.oidc.email.toLowerCase(),
+                               verified: false,
+                             }];
+      const initials = user.services.oidc.fullname.match(/\b[a-zA-Z]/g).join('').toUpperCase();
+      user.profile = { initials: initials, fullname: user.services.oidc.fullname };
+    }
+
+
     if (options.from === 'admin') {
       user.createdThroughApi = true;
       return user;

+ 19 - 0
server/authentication.js

@@ -54,5 +54,24 @@ Meteor.startup(() => {
     Authentication.checkAdminOrCondition(userId, normalAccess);
   };
 
+  if (Meteor.isServer) {
+    ServiceConfiguration.configurations.upsert(
+      { service: 'oidc' },
+      {
+        $set: {
+          loginStyle: 'redirect',
+          clientId: 'CLIENT_ID',
+          secret: 'SECRET',
+          serverUrl: 'https://my-server',
+          authorizationEndpoint: '/oauth/authorize',
+          userinfoEndpoint: '/oauth/userinfo',
+          tokenEndpoint: '/oauth/token',
+          idTokenWhitelistFields: [],
+          requestPermissions: ['openid']
+        }
+      }
+    );
+    }
+
 });