This commit is contained in:
Siwat Sirichai 2024-05-05 03:29:31 +07:00
parent 6a1c484356
commit 6054164089
5 changed files with 303 additions and 4 deletions

View file

@ -2,20 +2,31 @@ let passport = require('passport');
let express = require('express');
let https = require('https');
let fs = require('fs');
let ldap = require('ldapjs');
let app = express();
require('./config/passport.js');
let session = require('express-session');
let satitm_directory = ldap.createClient({
url: 'ldap://ad.satitm.chula.ac.th:389'
});
satitm_directory.bind('CN=SSOManager,OU=Service Accounts,DC=ad,DC=satitm,DC=chula,DC=ac,DC=th', '39BK5LCeU2NY2oG3beeBJH', function (err) {
if (err) {
console.log('Error:', err);
}
else {
console.log('Connected to SATITM Active Directory');
}
});
app.use(session({
secret: 'RLCCDwstDuT6nMJf5kko7C',
resave: false,
saveUninitialized: true
}));
// ... rest of your code ...
app.use(passport.initialize());
app.use(passport.session());
@ -26,6 +37,27 @@ app.get('/', function (req, res) {
response = 'Hello World!<br>';
console.log('User:', req.user);
if (req.user) {
// Query Active Directory for user details
// username is the UPN
let username = req.user.username;
let opts = {
filter: `(uid=${username})`,// replace 'username' with the actual username
scope: 'sub',
attributes: ['dn', 'memberOf']
};
satitm_directory.search('o=example', opts, function(err, res) {
res.on('searchEntry', function(entry) {
console.log('entry: ' + JSON.stringify(entry.object));
});
res.on('error', function(err) {
console.error('error: ' + err.message);
});
res.on('end', function(result) {
console.log('status: ' + result.status);
});
});
console.log('User:', req.user);
response += 'Username: ' + req.user.username + '<br>';
response += 'First Name: ' + req.user.first_name + '<br>';