【问题标题】:Passing display=touch to Facebook OAuth with Microsoft OWIN使用 Microsoft OWIN 将 display=touch 传递给 Facebook OAuth
【发布时间】:2015-01-08 13:32:45
【问题描述】:

我有一个 ASP.NET MVC5 应用程序,我使用此版本 MVC 附带的 ASP.NET OWIN 身份验证模型为 Facebook OAuth 2 登录配置了该应用程序。

我想告诉 Facebook 为基于触摸的设备优化其登录页面。 Facebook 文档说我应该能够通过在我们启动 OAuth 流程时向我们传递给 Facebook 的查询字符串添加一个 display=touch 参数来做到这一点。 (见https://developers.facebook.com/docs/reference/dialogs/oauth/

这应该是一件简单的事情,但我完全不知道如何自定义各种 OWIN 中间件类来添加这个参数。

如何自定义 OWIN 身份验证流程以修改 Facebook OAuth URL?

【问题讨论】:

  • 谢谢。那成功了。将在下面发布详细信息
  • 告诉我们您的进展情况,我无法让触摸对话框仅在移动设备上的桌面上工作......
  • 我先尝试了触摸,在模拟器中没有任何区别。实际上并没有在真实设备上尝试过。然后选择弹出窗口,它在模拟器和设备上给了我一个移动友好的显示,所以坚持下去。

标签: asp.net-mvc facebook oauth owin


【解决方案1】:

基本上:您需要继续为 Facebook 创建一个身份验证提供程序。所以创建一个继承自 FacebookAuthenticationProvider 的类。在此类中,覆盖“ApplyRedirect”方法。让它看起来像:

public override void ApplyRedirect(FacebookApplyRedirectContext context)
{
    context.Response.Redirect(context.RedirectUri + "&display=popup");
}
Now simply wire this class up with your configuration, like so:

app.UseFacebookAuthentication(new FacebookAuthenticationOptions
{
    Provider = new **<the name of the class that you created>**()
    // the rest of your configuration such as app ID and secret
});

应该就是这样!

这里由@nlaq 提供回答:Facebook PopUp Login with Owin

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-08
    • 2017-06-05
    • 2017-12-21
    • 2012-06-11
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多