MultiSamlStrategy in NestJs

47 views Asked by At

I see that passport-saml provides multi saml strategy to use as following (reference).

const { MultiSamlStrategy } = require('passport-saml');

passport.use(new MultiSamlStrategy(
  {
    passReqToCallback: true, // makes req available in callback
    getSamlOptions: function(request, done) {
      findProvider(request, function(err, provider) {
        if (err) {
          return done(err);
        }
        return done(null, provider.configuration);
      });
    }
  },
  function(req, profile, done) {
    findByEmail(profile.email, function(err, user) {
      if (err) {
        return done(err);
      }
      return done(null, user);
    });
  })
);

And nest js allows strategy to implement in following way which only works with single strategy (reference).

import { Strategy } from 'passport-local';
import { PassportStrategy } from '@nestjs/passport';
import { Injectable, UnauthorizedException } from '@nestjs/common';
import { AuthService } from './auth.service';

@Injectable()
export class LocalStrategy extends PassportStrategy(Strategy) {
  constructor(private authService: AuthService) {
    super();
  }

  async validate(username: string, password: string): Promise<any> {
    const user = await this.authService.validateUser(username, password);
    if (!user) {
      throw new UnauthorizedException();
    }
    return user;
  }
}

How to make these 2 work together? I am unable to find reference for these 2 to work together.

0

There are 0 answers