请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

passport 登录接口相关的问题

我把课程中的passport进行了改写,变为如下

passport.use(
  new LocalStrategy(async function(username, password, done) {
    request.post(
      {
        url: '',
        form: {
          un: username,
          pw: password
        }
      },
      function(error, reponse, body) {
        if (!error && reponse.statusCode === 200) {
          var ret = JSON.parse(body)
          if (ret.success) {
            return done(null, ret)
          } else {
            return done(null, false, '登录失败')
          }
        } else {
          return done(null, false, '服务器无响应')
        }
      }
    )
  })
)

其他没变更,还是如下

router.post('/signin', async (ctx, next) => {
  return Passport.authenticate('local', function(err, user, info, status) {
    if (err) {
      ctx.body = {
        code: -1,
        msg: err
      }
    } else {
      if (user) {
        ctx.body = {
          code: 0,
          msg: '登录成功',
          user
        }
        return ctx.login(user)
      } else {
        ctx.body = {
          code: 1,
          msg: info
        }
      }
    }
  })(ctx, next)
})

然后使用 curl 调用相关接口

 curl -d "username=&password=" http://localhost:8080/users/signin

但是控制台却报错:

TypeError: Cannot set property name of which has only a getter
at defaultErrorHanlder (\node_modules\koa-generic-session\lib\session.js:523:12)
at \node_modules\koa-generic-session\lib\session.js:193:9
at Generator.throw ()
at step (\node_modules\koa-generic-session\lib\session.js:3:191)
at \node_modules\koa-generic-session\lib\session.js:3:402
at process._tickCallback (internal/process/next_tick.js:68:7)

是什么原因呢?

正在回答 回答被采纳积分+3

1回答

快乐动起来呀 2019-07-14 00:09:18

之前有类似问题,自己定义的字段不要与mongodb的关键词冲突,比如id之类的

0 回复 有任何疑惑可以回复我~
  • 提问者 mokongh #1
    可是我这两个地方都没有引用和mongodb相关的模块
    回复 有任何疑惑可以回复我~ 2019-07-15 09:36:29
  • 快乐动起来呀 回复 提问者 mokongh #2
    把你代码发我邮箱吧,抽空帮你看下,不建议课程没理解的情况下自己魔改,学习成本很高
    回复 有任何疑惑可以回复我~ 2019-07-16 00:30:43
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号