首页 > 解决方案 > 带有 spotify 身份验证回调 url 的 Aspnet Core MVC 应用程序重定向到 127.0.0.1

问题描述

我正在构建一个 aspnet 核心 Web 应用程序,并希望允许我的用户使用他们的 Spotify 帐户进行身份验证。在本地运行时,我已经设法使身份验证流程按预期工作,但是当我部署并使用我的域时,回调 url 是:http://127.0.0.1/callback

下面是外部身份验证的配置:

        services.AddAuthentication()
        .AddSpotify(options =>
        {
            options.ClientId = "blahblah";
            options.ClientSecret = "blahblah";
            options.CallbackPath = "/callback";
            options.Scope.Add("user-follow-read");

如您所见,我假设这是从服务器附加到托管域的吗options.CallbackPath/callback

我的配置如下所示:

我努力了:

有没有办法我可以在 nginx 中指定主机,spotify authentication options或者我可以在 nginx 中做一些魔术来帮助回调?

谢谢

标签: c#asp.net-mvcasp.net-corecallbackspotify

解决方案


我过去使用了一个稍微不同的组件,但同样应该适用......

对于回调路径,您应该将其设置为:

在 Spotify - http://[yourlocaldomain]:[port]/signin-spotify - http://yourlocaldomain.com/signin-spotify

您正在使用的组件将设置/signin-spotify为默认组件,CallbackPath因此您无需在设置中进行services.AddAuthentication().AddSpotify(options =>...设置。

然后在您的控制器中,您的“ExternalLogin”应该看起来像这样......

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult ExternalLogin(string provider, string returnUrl)
{
    // Request a redirect to the external login provider
    return new ChallengeResult(provider, Url.Action("externallogincallback", "account", new { ReturnUrl = returnUrl }));
}

其中provider=SpotifyreturnUrl=注册完成后您想要去的本地路径位置(例如 '/home/welcome')

account/externallogincallback登录 Spotify 后将返回此示例中的用户。注册内容然后 externallogincallback将用户推送到returnUrl.


推荐阅读