The start of OAuth2 integration, Core, and Kaleidoscope

master
rob 2 years ago
parent 2cfeedf0cc
commit fc77b1e182

@ -1,3 +1,9 @@
- Email change
- Password
- Light mode
Want to tune in live
Want chat

@ -7,9 +7,13 @@
const striptags = require('striptags');
const slug = require('slug');
const { SiteService } = require('../../lib/site-lib');
// const fs = require('fs');
const { SiteService/*, SiteAsync*/ } = require('../../lib/site-lib');
const mongoose = require('mongoose');
// const image = require('./image');
const ObjectId = mongoose.Types.ObjectId;
const Post = mongoose.model('Post');

@ -11,6 +11,7 @@ const UserBlock = mongoose.model('UserBlock');
const passport = require('passport');
const PassportLocal = require('passport-local');
const OAuth2Strategy = require('passport-oauth2');
const striptags = require('striptags');
const uuidv4 = require('uuid').v4;
@ -36,6 +37,7 @@ class UserService {
async start ( ) {
this.log.info(`starting ${module.exports.name} service`);
this.registerPassportLocal();
this.registerPassportOAuth2();
if (process.env.DTP_ADMIN === 'enabled') {
this.registerPassportAdmin();
}
@ -262,6 +264,25 @@ class UserService {
}
}
registerPassportOAuth2 ( ) {
const AUTH_HOST = process.env.DTP_CORE_AUTH_HOST || 'localhost';
const oauthOptions = {
authorizationURL: `https://${AUTH_HOST}/oauth2/authorize`,
tokenURL: `https://${AUTH_HOST}/oauth2/token`,
clientID: process.env.DTP_CORE_CLIENT_ID,
clientSecret: process.env.DTP_CORE_CLIENT_SECRET,
callbackURL: `http://${process.env.DTP_SITE_DOMAIN}/auth/example/callback`,
};
passport.use(new OAuth2Strategy(oauthOptions, this.handleOAuth2Login.bind(this)));
}
async handleOAuth2Login (accessToken, refreshToken, profile, cb) {
this.log.info('OAuth2 login', { accessToken, refreshToken, profile });
User.findOrCreate({ exampleId: profile.id }, function (err, user) {
return cb(err, user);
});
}
registerPassportAdmin ( ) {
const options = {
usernameField: 'username',

@ -57,6 +57,7 @@
"otplib": "^12.0.1",
"passport": "^0.5.0",
"passport-local": "^1.0.0",
"passport-oauth2": "^1.6.1",
"pug": "^3.0.2",
"qrcode": "^1.5.0",
"rate-limiter-flexible": "^2.3.6",

@ -1750,6 +1750,11 @@ base64id@2.0.0, base64id@~2.0.0:
resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6"
integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==
base64url@3.x.x:
version "3.0.1"
resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d"
integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
@ -5788,6 +5793,11 @@ o-stream@^0.3.0:
resolved "https://registry.yarnpkg.com/o-stream/-/o-stream-0.3.0.tgz#204d27bc3fb395164507d79b381e91752e8daedc"
integrity sha512-gbzl6qCJZ609x/M2t25HqCYQagFzWYCtQ84jcuObGr+V8D1Am4EVubkF4J+XFs6ukfiv96vNeiBb8FrbbMZYiQ==
oauth@0.9.x:
version "0.9.15"
resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1"
integrity sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==
object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
@ -6051,6 +6061,17 @@ passport-local@^1.0.0:
dependencies:
passport-strategy "1.x.x"
passport-oauth2@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.1.tgz#c5aee8f849ce8bd436c7f81d904a3cd1666f181b"
integrity sha512-ZbV43Hq9d/SBSYQ22GOiglFsjsD1YY/qdiptA+8ej+9C1dL1TVB+mBE5kDH/D4AJo50+2i8f4bx0vg4/yDDZCQ==
dependencies:
base64url "3.x.x"
oauth "0.9.x"
passport-strategy "1.x.x"
uid2 "0.0.x"
utils-merge "1.x.x"
passport-strategy@1.x.x:
version "1.0.0"
resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4"
@ -7991,6 +8012,11 @@ uid2@0.0.3:
resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82"
integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=
uid2@0.0.x:
version "0.0.4"
resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44"
integrity sha512-IevTus0SbGwQzYh3+fRsAMTVVPOoIVufzacXcHPmdlle1jUpq7BRL+mw3dgeLanvGZdwwbWhRV6XrcFNdBmjWA==
uikit@^3.9.4:
version "3.9.4"
resolved "https://registry.yarnpkg.com/uikit/-/uikit-3.9.4.tgz#2565a5c0239f49d3a75bfa89c519d40c006e3c46"
@ -8184,7 +8210,7 @@ util@^0.12.3:
safe-buffer "^5.1.2"
which-typed-array "^1.1.2"
utils-merge@1.0.1:
utils-merge@1.0.1, utils-merge@1.x.x:
version "1.0.1"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=

Loading…
Cancel
Save