-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
egg-passport 例子太少了,根本用不明白啊,能不能多加点官方例子? #1355
Comments
我也觉得,这个文档和例子写了跟没写一样,所有的文件怎么写,搭建好了,如何使用?例子demo是什么?整了一下午,没搞明白,不如自己去研究egg session cookie |
我看了好几天……还跑去看了依赖的源码才明白,其实用法不难,就是根本不写清楚那些函数是干嘛的,对新手不是很友好啊…… |
之前的 RFC 在:#38 egg-passport 只是对 http://passportjs.org/ 的 wrap,所以使用前需要先了解 passportjs 的基础用法。 也欢迎社区贡献文档。 |
我觉得自己的用户就自己做注册登陆吧,这样业务可以写的更灵活。 1 回调地址的控制器里面判断是否成功拿到了第三方信息, 2 控制器里拿到了微薄id,查找数据库有没有用户绑定了这个微薄id,a.有用户绑定了直接返回渲染的首页并且回传token。b.没有用户绑定过,渲染一个页面提示用户绑定,在这个页面里提交用户名,密码,微薄id到一个接口(依据你用邮箱,手机号,昵称使用不同的方式验证用户)。用户验证通过了在这个接口里绑定本地用户和微薄id,并且跳转到首页,如果失败了提示密码错误等 B:如果是单页面应用那访问第三方获用户信息的工作只能让前端来做,在回调页面访问接口把获取到的信息通过一个接口发给服务器,服务器根据信息eg:微薄id判断,如果本地用户绑定过直接返回本地用户的token和状态码告诉页面直接显示登陆之后的页面,如果没绑定过那么服务器返回状态码告诉前端显示绑定的页面,剩下的就是和上面一样验证用户判断是否绑定了。 |
egg-passport就是auth2吗 |
oauth 是一种协议规范,在这之上会有一些具体的实现,如微信开发平台,如 Twitter 等,passportjs 有此类的插件 http://passportjs.org/features |
那egg-passport可以用来验证自己的api吗,类似jwt这种 |
你看看我那个链接,passportjs 有 passport-jwt 的扩展,你参考 egg-passport-xx 自己封装一个 egg-passport-jwt 即可 |
@acodercat 封装egg-passport-jwt时,需要修改egg-passport插件中的代码,修改文件egg-passport/lib/passport.js.
注释掉这行代码 |
试了下egg-passport-github,按照readme里面写的根本跑不起来。看到这个issue才发现不只是我一个人觉得文档例子没法理解。能不能出一个可以 |
主要有两点:
// authenticates routers
app.passport.mount('github', {
loginURL: `/api/${info.url}/passport/github`,
callbackURL: `/api/${info.url}/passport/github/callback`,
});
// verify
app.passport.verify(async function(ctx, profileUser) {
return await ctx.service.user.verify(profileUser);
}); |
提示
github的key和secret我已经配置 |
你这个很老的了吧。。。跟这个插件没关系,就是加个 config.keys,用于 cookie 加签的。
发自我的 iPhone
… 在 2017年12月1日,13:56,sharkshark ***@***.***> 写道:
提示
Error in /passport/github
Please set config.keys first
github的key和secret我已经配置
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
|
很老是什意思? egg版本? |
在配置文件里面加一个 如果是新的,那可能是你 config 配置错了,是不是覆盖 module.exports 了 |
egg-passport这么多协议,如何在middleware哪一层拦截所有的路由都需要登陆,除了各自passport插件的登陆或者callback url |
自己在 middleware 里面判断 |
一个网站可能支持多种登陆方式,怎么根据用户采用的passport登陆方式(github, weibo等)来决定忽略哪些路由呢? |
可以看下 example 和源码,拿到的 user 数据应该有区别的 |
在同时支持多种Strategy登陆方式的时候,如何知道当前用于是以何种Strategy登陆的?有没有ctx.passport.strategy这种变量? |
返回的 user 里面有一个 provider 的 https://github.com/eggjs/egg-passport-github/blob/master/app.js#L19 |
谢谢!文档很用心,赞 |
egg的开发人员回复真积极,6的飞起,谢谢🙏 |
@zhanghuaqiang 不用修改源代码,options里把successReturnToOrRedirect设置为null即可;
|
The text was updated successfully, but these errors were encountered: