CNode

不使用 passport-local 如何进行鉴权?

问答
JJZLeung发布于8 年前最后回复5 年前20 回复7005 浏览0 收藏
  • 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)

M
MiYogurt#1·8 年前

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

I
i5ting#2·8 年前

看egg-cnode源码去

H
hankewins#3·8 年前

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

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

A
atian25#4·8 年前

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

C
chengnuo#5·8 年前

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

J
JZLeung#6·8 年前
引用 hankewins@i5ting 目前遇到同样问题,看了egg cnode源码也是不能处理登陆错误的返回!只有successRedirect,failureRedirect的跳转。 @JZLeung 如果你们不...

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

J
JZLeung#8·8 年前
引用 chengnuo用egg jwt (json web token) 可好?

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

S
ShuBuShao#9·5 年前

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

参与回复
登录后即可参与回复。登录