微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 如何使用Oauth请求提交和处理请求参数?

我正在使用Meanjs堆栈来开发Web应用程序.我遇到的问题是,我的常规注册过程有一些Oauth用户配置文件不常见的独特参数.因此,当我让用户注册Facebook时,我将它们移动到一个新的注册表单,让他们填写额外的参数,然后单击“使用facebook注册”.

路线与此处的常见Meanjs路线相同:
https://github.com/meanjs/mean/blob/master/app/routes/users.server.routes.js

特别是这些线:

app.route('/auth/facebook').get(passport.authenticate('facebook',{
    scope: ['email']
}));

app.route('/auth/facebook/callback').get(users.oauthCallback('facebook'));

我想做的是,将额外的参数附加到请求对象,以便当auth进程到达exports.saveOAuthUserProfile时:https://github.com/meanjs/mean/blob/master/app/controllers/users/users.authentication.server.controller.js
功能将能够访问这些参数并将其保存为用户模型的一部分.

我已经尝试将参数附加到Get请求和访问

req.params.paramId

但这不起作用,因为你不能用facebook api注册一个param加载的请求(或者至少看起来就是这样).

我已经在StackOverflow的其他地方读过你可以加载请求状态,但这对我来说似乎很奇怪.这是链接Facebook OAuth: custom callback_uri parameters

所以,关于如何将额外数据加载到Oauth请求的任何指导,以便当我保存用户配置文件时我可以访问并保存它,这将是很好的.

多谢你们.

解决方法

对我来说,你想要实现的目标并不是很清楚.什么是“额外”字段,为什么不直接从用户配置文件中派生字段?我见过的大约98%的FB登录实现只使用“使用Facebook登录”按钮并在OAuth过程中获取用户的数据,而不是由用户手动输入.

passport-facebook为例,你有可能

a)配置自定义范围

> https://github.com/jaredhanson/passport-facebook#extended-permissions

b)使用自定义范围的数据丰富配置文件对象

> https://github.com/jaredhanson/passport-facebook#profile-fields

然后,配置文件对象将自动包含其他请求的字段,您无需调整请求对象本身.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐