【问题标题】:Is it possible to use passport.js to authenticate wep apis in node?是否可以使用 passport.js 来验证节点中的 wep api?
【发布时间】:2017-07-19 23:08:59
【问题描述】:

我目前使用 Passport.js 作为我的 Node.js 网站的中间件身份验证。但是,我想为 react-native 应用程序使用相同的身份验证服务。

有没有办法通过 Passport.Js 公开生成的令牌并使用 Json 将其返回到我的 react-native 应用程序?到目前为止,我知道可以自定义身份验证调用的返回,例如在

  app.post('/api/login',
    function(req, res, next) {
        app.passport.authenticate('login', function(err, user, info) {
            if (err) {
                res.json(200, app.infra.errorReturn('Server error', err, null));
            } else if (user === false) {
                res.json(200, app.infra.errorReturn('Invalid Login', '', null));
            } else {
                res.json(200, app.infra.successReturn('', '', user));
            }
        })(req, res, next);
    });

至于策略,我使用的是 LocalStrategy,它的配置如下:

const LocalStrategy = require('passport-local').Strategy;
app.passport.use('login',
    new LocalStrategy({ passReqToCallback: true },
        function(req, username, password, done) { ....

这是在“信息”参数中吗?可以通过某种方式提取吗?

【问题讨论】:

    标签: node.js authentication asp.net-web-api react-native passport.js


    【解决方案1】:

    所以...长话短说,我发现我可以为同一个应用程序使用两种(或更多)身份验证策略。一个用于页面路由,另一个用于包含 api 的路由。

    因此,我设法通过实现 passport-jwt 然后使用 jsonwebtoken 来解决我自己的问题,以便生成网站在访问 api 服务时使用的“内部”webtoken。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-01
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      • 2021-08-10
      相关资源
      最近更新 更多