【问题标题】:How do I submit and process request params with an Oauth request?如何使用 Oauth 请求提交和处理请求参数?
【发布时间】:2015-08-13 13:47:51
【问题描述】:

我正在使用 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'));

我想做的是将额外的参数附加到请求对象上,这样当身份验证过程到达exports.saveOAuthUserProfile 内部时:https://github.com/meanjs/mean/blob/master/app/controllers/users/users.authentication.server.controller.js 此函数将能够访问这些参数并将它们保存为用户模型的一部分。

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

req.params.paramId

但这不起作用,因为您无法使用 facebook api 注册参数加载请求(或者至少看起来是这样)。

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

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

谢谢各位。

【问题讨论】:

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


    【解决方案1】:

    我不太清楚你想要实现什么。什么是“额外”字段,为什么不直接从用户的个人资料中派生这些字段?我见过的大约 98% 的 FB 登录实现只是使用“使用 Facebook 登录”按钮并在 OAuth 过程本身期间获取用户的数据,而不是由用户手动输入。

    passport-facebook 为例,您有可能

    a) 配置自定义范围

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

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

    【讨论】:

    • 目的是用户指定了一些根本不属于 Facebook 个人资料系统的自定义数据,但它是该系统用户对象的一部分(并且是注册的要求) )。所以,我希望用户能够在注册时输入这些额外数据,即使是使用 Facebook。
    • 在会话对象中结合 FB 配置文件和自定义值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    相关资源
    最近更新 更多