gpt4 book ai didi

facebook - 能够在 Omniauth 支持的 Facebook 身份验证请求上传递自定义数据

转载 作者:行者123 更新时间:2023-12-01 12:55:50 25 4
gpt4 key购买 nike

git://github.com/intridea/omniauth.git 的 Omniauth 分支 0-3-stable轨道 3.0.7

当 Omniauth 通过对“/auth/facebook”进行 GET 调用将用户重定向到 Facebook 身份验证对话框时,如果该用户从身份验证对话框中单击“取消”,那么我们可以回调请求

GET "/auth/facebook/callback?error_reason=user_denied&error=access_denied&error_description=The+user+denied+your+request." 

Omniauth 立即重定向到:

GET "/auth/failure?message=invalid_credentials"

不幸的是,当这是对应用程序的响应时。由 FB 请求对话框生成的邀请,没有关于哪个用户在身份验证对话框中“取消”的标识信息。如果我们可以随 Omniauth 请求一起发送一些识别信息,我们就可以让自己“记住”哪个用户执行了“取消”,这将有助于我们在后端跟踪明确的拒绝。

有没有什么方法可以通过对“/auth/facebook”的调用发送数据,这些数据会在对“/auth/facebook/callback”的结果调用中简单地重复返回给我们?这类似于请求对话框文档中的“数据”参数。

谢谢,韦斯

最佳答案

您可以传递一个“state”参数,该参数将被传递到回调 url。

例如。你会调用'/auth/facebook?state=SOME_INFO'

然后在您将“/auth/facebook/callback”路由到的 Controller 操作中,您可以像普通参数一样检索:

信息=参数[:状态]

参数必须命名为“state”。这在 omniauth-facebook 文档的“每个请求选项”部分下提到。 https://github.com/mkdynamic/omniauth-facebook

关于facebook - 能够在 Omniauth 支持的 Facebook 身份验证请求上传递自定义数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9878325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com