首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >koa-路由器不适用于护照本地策略

koa-路由器不适用于护照本地策略
EN

Stack Overflow用户
提问于 2020-04-02 06:43:42
回答 2查看 332关注 0票数 0

来自考拉护照的passport.authenticate不适用于当地的策略。我不使用会话,也不使用序列化。这只是一个简单的护照示例,但是服务器响应总是404。

代码语言:javascript
复制
const Koa = require('koa');
const bodyParser = require('koa-bodyparser');
const passport = require('koa-passport');
const Router = require('koa-router');
const LocalStrategy = require('passport-local').Strategy;

const app = new Koa();

app.use(bodyParser());
app.use(passport.initialize());

passport.use(new LocalStrategy({
    session: false,
    }, (email, password, done) => {
      if(email && password){
          return done(null, [email, password]);
      }
      else {
          return done(null, false);
      }
    }
));

const router = new Router();

router.post('/auth', async (ctx) => {
    passport.authenticate('local', { session: false }, (err, user) => {
        if(!user)
            return ctx.body = 'Failed!';

        return ctx.body = { msg: 'Success' };
    });
});

app.use(router.routes());

app.listen(3000, console.log('The server is started'));
EN

回答 2

Stack Overflow用户

发布于 2020-04-02 06:43:42

答案是关于koa-的github回购的一个深入的问题,我们应该用传递的上下文对象:返回

代码语言:javascript
复制
router.post('/auth', async (ctx) => {
    return passport.authenticate('local', { session: false }, (err, user) => {
        if(!user)
            return ctx.body = 'Failed!';

        return ctx.body = { msg: 'Success' };
    })(ctx, next);
});
票数 0
EN

Stack Overflow用户

发布于 2022-07-03 09:10:21

我也遇到了同样的问题,并且知道必须返回上下文对象才能解析响应。

代码语言:javascript
复制
router.post('/auth', async (ctx) => {
    return passport.authenticate('local', { session: false }, (err, user) => {
        if(!user)
            return ctx.body = 'Failed!';

        return ctx.body = { msg: 'Success' };
    })(ctx);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60985635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档