不使用 passport-local 如何进行鉴权?
发布于 6 年前 作者 JZLeung 5163 次浏览 来自 问答
  • Node Version: 8.11.3
  • Egg Version: 2.9.1
  • Plugin Name: egg-passport-local
  • Plugin Version: ^1.2.1
  • Platform:mac os
  • Mini Showcase Repository:

因为写的是 api 接口,所以没有使用 egg-passport-local 进行用户账号密码的校验,也没有使用它来进行鉴权。

目前的问题是:

  • 如果使用了 egg-passport-local 进行鉴权的话,目前无法返回正确的错误信息给前端。
  • 如果不使用该插件,无法操作 ctx.user
    Cannot set property user of #<Object> which has only a getter
    

针对这俩问题:

  • 能否使用 egg-passport-local 进行鉴权,并且可以手动处理具体的错误信息?
  • 能否不使用 egg-passport-local 鉴权,但是依旧可以往 ctx.user 中写数据?
9 回复

context 扩展不就得了,自己看下源码啊。

看egg-cnode源码去

@i5ting 目前遇到同样问题,看了egg-cnode源码也是不能处理登陆错误的返回!只有successRedirect,failureRedirect的跳转。

@JZLeung 如果你们不需要登陆,只是提供接口,可以考虑token处理。

直接自己做 post 认证即可。 passport.js 本来就设计为 oauth 的,硬粘过来总感觉不好

用egg-jwt (json web token) 可好?

@hankewins 目前的处理办法和 cnode 的差不多,只是 cnode 是通过 token 去获取用户,我是通过 cookie。

@atian25 现在不用 user 字段,用其他字段标识。

@chengnuo jwt 没用过。不知道是否有坑。

最近做项目, 做到登录这一块, 也在研究跟题主一样的问题 最后选择了jwt

回到顶部