gpt4 book ai didi

asp.net-mvc - 随机端口上的 Facebook OAuth + AppHarbor 解决方法

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

我有一个示例应用程序,托管在 AppHarbor 上,现在想通过 Facebook 集成授权。所以我下载了 nugget Facebook.Web.Mvc 包来实现它。

阅读教程后,在 Controller 中我有方法:

 public ActionResult Login(string returnUrl)
{
var oauthClient = new FacebookOAuthClient(FacebookApplication.Current) { RedirectUri = GetFacebookRedirectUri() };


if (!string.IsNullOrWhiteSpace(returnUrl))
{
returnUrl = Url.Action("Index", "Facebook");
}

dynamic parameters = new ExpandoObject();
parameters.scope = ExtendedPermissions;

var state = new { csrf_token = CalculateMD5Hash(Guid.NewGuid().ToString()), return_url = returnUrl };
parameters.state = Base64UrlEncode(Encoding.UTF8.GetBytes(JsonSerializer.Current.SerializeObject(state)));
SetFacebookCsrfToken(state.csrf_token);

string s = oauthClient.GetLoginUrl(parameters).AbsoluteUri;

ViewBag.FacebookLoginUrl = s;
//new LogEvent(s).Raise();

return View(new AccountModel());
}

查看:

<a href="@ViewBag.FacebookLoginUrl" id="lUrl">
<div class="fblogin"></div>

在本地主机上,这对我有用。但是当我将它上传到 appharbor 时,我看到生成的链接指向地址 + 端口 16013(支持人员总是告诉随机端口)。所以点击它会显示 facebook 登录窗口,而不是空白页面。

我在 facebook 中手动将我的应用程序设置配置到此端口,但没有帮助。

我还尝试通过此端口访问我的网站 - 没有。

然后我通过 jquery 将端口号更改为 80,它也没有帮助。

你遇到过这样的问题吗?

最佳答案

我不熟悉 Facebook api,但我遇到过类似的问题。我怀疑传入的 returnUrl 值不正确。它可能包含 AppHarbor 在内部用于负载平衡的端口号。

请参阅这篇关于如何为 AppHarbor 创建公共(public) URL 的文章: http://support.appharbor.com/kb/getting-started/workaround-for-generating-absolute-urls-without-port-number

然后确保您的 returnUrl 中的值是公开可用的。

关于asp.net-mvc - 随机端口上的 Facebook OAuth + AppHarbor 解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8848002/

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