【问题标题】:Is passportjs for client side or server side?是客户端还是服务器端的passportjs?
【发布时间】:2018-06-06 19:52:59
【问题描述】:

我正在尝试在我的 MEAN 堆栈应用程序中使用 passport.js 来登录用户。但是我对在哪里使用 passport.js 来验证用户感到困惑。

我应该在客户端使用它吗?还是应该在快速应用程序中使用它并通过端点访问配置文件信息?

谢谢。

【问题讨论】:

  • Passportjs 是一个服务器端插件。
  • 我应该如何将 cookie 传递给浏览器?@asosnovsky
  • 阅读一些教程。这超出了您可以在这里获得的帮助。
  • 感谢@asosnovsky 的帮助

标签: angular express passport.js mean-stack


【解决方案1】:

Passport.js 是在服务器端与 Node.js 一起使用以实现身份验证的中间件。您可以使用 Angular(或 Postman,如果您还没有前端)通过 API 端点访问存储在数据库中的配置文件信息。

上周末我在 Youtube 上观看了 Brad Traversy 的一个优秀视频系列,它完全符合您的要求:MEAN Stack Front to Back,他在其中构建了一个 MEAN 身份验证应用程序使用护照。

由于代码是 10 个月前写的,有点过时了,但我在我的 github repo 中总结了所有的代码破坏更改:https://github.com/Stanza987/mean-auth-app-universal。如果您愿意,您还可以查看成品并下载我的源代码。

【讨论】:

  • 感谢您的帮助。
  • 我还有一个问题。对于使用 google-oauth 登录用户,我在我的 express 应用程序中保留了一个端点,但是当我从 angular 向该端点发送请求时,不会呈现 google 的登录页面。
【解决方案2】:

Passport 最适合所有视图都由服务器处理的服务器。它可能是一个服务器端渲染 (SSR) 应用,或者使用像 Pug 这样的视图引擎

但是当涉及到在 REST api 服务器上工作时,您会清楚地看到 Passport 只有在您使用不需要需要重定向到登录页面并返回的策略时才可用。

这种策略的一个例子是passport-google,它需要将客户端视图重定向到google登录页面,然后调用回调url来提交结果。

因此,如果您只想使用 passport-localpassport-jwt 等策略,那么它非常适合与 Angular 等客户端通信的 REST api,否则护照用于服务器端身份验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-04
    • 2010-09-29
    • 1970-01-01
    • 2011-04-30
    • 2020-07-18
    • 1970-01-01
    相关资源
    最近更新 更多