当前位置: 首页 > 面试题库 >

具有多个身份验证提供程序的passport.js?

富波光
2023-03-14
问题内容

使用Passport.js是否可以为同一路由指定多个身份验证提供程序?

例如(在护照指南中),我可以在以下示例路线中使用本地策略以及Facebook和Twitter策略吗?

app.post('/login',
  passport.authenticate('local'), /* how can I add other strategies here? */
  function(req, res) {
    // If this function gets called, authentication was successful.
    // `req.user` contains the authenticated user.
    res.redirect('/users/' + req.user.username);
  });

问题答案:

Passport的中间件的构建方式使您可以在一个passport.authenticate(...)呼叫中使用多种策略。

但是,它是用OR顺序定义的。也就是说,只有在所有策略均未成功返回的情况下,它才会失败。

这是您将如何使用它:

app.post('/login',
  passport.authenticate(['local', 'basic', 'passport-google-oauth']), /* this is how */
     function(req, res) {
       // If this function gets called, authentication was successful.
       // `req.user` contains the authenticated user.
       res.redirect('/users/' + req.user.username);
});

换句话说,使用它的方法是传递一个数组,该数组包含您希望用户进行身份验证的策略的名称。

另外,不要忘记预先设置要实施的策略。

您可以在以下github文件中确认此信息:

在多重身份验证示例中使用基本身份验证或摘要身份验证。

护照的authenticate.js定义



 类似资料:
  • 我的问题是,我希望有两个身份验证提供商 之前:我有我的UserDetailServiceImpl,我根据数据库中的数据验证了用户的身份(不确定是哪个提供者) 现在:我使用了ActiveDirectoryLdapAuthentiation提供程序,如下所示 我成功了,所以我可以认证。 问题是: 我现在无法再使用数据库用户登录,现在只有LDAP。 未使用UserDetailsService,因此用户具

  • 我正在尝试使用Spring Security authentication设置一个身份验证服务器,并且需要有多个身份验证提供程序来提供客户端\u凭据。 我已经进行了相当多的搜索,但尚未找到如何配置Spring Security以将我的自定义身份验证提供程序添加到客户端凭据身份验证提供程序列表中。我找到的每种方法都导致客户端凭据身份验证的相同2个提供程序。匿名和道身份验证提供程序。 如果您能帮助我了

  • 我希望我的web应用程序的用户通过LDAP和额外的自定义身份验证进行身份验证。这是一个用Kotlin编写的Spring Boot应用程序。我将AuthenticationManagerBuilder配置为 我希望链接身份验证,以便如果CustomAuthenticationProvider成功地进行身份验证(函数authenticate不抛出),身份验证将继续使用LDAP身份验证提供程序。 正如所

  • 问题内容: 在Spring Security中,有多个身份验证提供程序的参考,但是找不到Java config中的示例。 以下链接给出了XML表示法: Spring Security中的多个身份验证提供程序 我们需要使用LDAP或DB进行身份验证 下面是我们的示例代码: 问题答案: 也许这会帮助你:

  • 我正在尝试在Spring身份验证服务器(Spring Security)中配置多个身份验证提供程序(主要和次要) 根据“身份验证”方法留档: 返回:包含凭据的完全经过身份验证的对象。如果AuthenticationProvider无法支持对传递的身份验证对象的身份验证,则可能返回null。在这种情况下,将尝试下一个支持提供的身份验证类的AuthenticationProvider。 如果身份验证失

  • 我正在尝试为正在进行的 spring-boot 项目实现身份验证和授权服务。我已经实现了一个基于 JPA 的身份验证提供程序,它工作正常。如何将 LDAP 身份验证提供程序添加到同一项目并根据用户身份验证类型在身份验证方法之间切换? 下面是我的代码 虽然我的LDAP证书是正确的,但它没有达到那个方法。如何从DB ex(LDAP、JPA、SSO)获取我的应用程序的身份验证方法,并执行相应的身份验证提