如何使用Oauth请求提交和处理请求参数?

时间:2015-05-30 20:06:51

标签: node.js facebook-graph-api express oauth meanjs

我正在使用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请求中的任何指导,以便当我保存用户配置文件时我可以访问并保存它,这将是很好的。

谢谢你们。

1 个答案:

答案 0 :(得分:2)

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

passport-facebook为例,您可能

a)配置自定义范围

b)使用自定义范围的数据

丰富配置文件对象

profile对象将自动包含其他请求的字段,您无需调整请求对象本身。