带有 spotify 身份验证回调 url 的 Aspnet Core MVC 应用程序重定向到 127.0.0.1
Posted
技术标签:
【中文标题】带有 spotify 身份验证回调 url 的 Aspnet Core MVC 应用程序重定向到 127.0.0.1【英文标题】:Aspnet Core MVC application with spotify authentication callback url redirecting to 127.0.0.1 【发布时间】:2019-10-09 19:19:22 【问题描述】:我正在构建一个 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
,所以我假设这是从服务器附加到托管域的?
我的配置如下:
Ubuntu 18.04 LTS 虚拟机 在 Docker 容器中运行的应用程序,侦听端口 80(无 https) nginx 服务器配置为我的域的反向代理 让我们加密为 nginx 颁发 SSL 证书 Spotify 重定向 URL 设置为https://example.com/callback
和 http//:localhost:5001/callback
我试过了:
在program.cs
中设置.UseUrls("https://example.com")
spotify 应用配置中各种不同的重定向 URL 组合
有没有办法我可以在 spotify authentication options
中指定主机,或者我可以在 nginx 中做一些魔术来帮助回调?
谢谢
【问题讨论】:
您用于 Spotify 身份验证的组件是什么? 我正在使用AspNet.Security.OAuth.Spotify
在下面的答案中添加了我的想法。希望有帮助
下面的答案有帮助吗?
【参考方案1】:
您可以尝试为已部署的实例使用域 - 因此,如果有一个地址可以在网络上加载您的响应,那么您需要使用该地址而不是 127.0.0.1,因为这是您的本地计算机,在本地运行时可以正常工作但是一旦部署,您必须改用部署的地址
【讨论】:
如何指定域?我可以看到的 spotifyauth 的唯一选项是 `options.CallbackPath = "/callback";` 如果我进入域,它会引发异常:'The path in 'value' must start with '/'.'
【参考方案2】:
我在过去使用了一个稍微不同的组件,但同样的应该适用...
对于回调路径,您只需将其设置为:
在 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
= Spotify
和returnUrl
= 注册完成后您想要去的本地路径位置(例如'/home/welcome')。
在此示例中,用户登录 Spotify 后将返回到 account/externallogincallback
。 externallogincallback
进行注册,然后将用户推送到 returnUrl
中指定的 url。
【讨论】:
以上是关于带有 spotify 身份验证回调 url 的 Aspnet Core MVC 应用程序重定向到 127.0.0.1的主要内容,如果未能解决你的问题,请参考以下文章
带有 Spotify iOS SDK 的 Cordova iOS - 触发身份验证
从 javascript [spotify auth] 中的弹出窗口获取访问令牌 url
重定向到带有 SAML 响应的回调 url 时出现错误无法以角度发布