c# - 使用 Spotify auth 的 ASP.NET 核心重定向失败的外部身份验证服务
问题描述
我按照本教程为我的 .NET 核心 web 应用程序设置了一个 Spotify 外部身份验证,它在本地 Docker 容器中运行良好(此错误的常见原因是回调 URL 不完全匹配)。但是当我将它发布到 Azure App Service (Linux) 时,它看起来根本没有重定向,我收到以下错误。我怀疑它与重定向到 Spotify 并返回有关,但我是 web api 开发的新手,有人可以说明我应该做什么吗?
INVALID_CLIENT:无效的重定向 URI
我注意到 Spotify APIhttp
在回调查询中响应而不是,https
这就是导致此问题的原因,有没有办法更改示例中使用的 AddAuthentication 管道来请求https
回调?
services.AddAuthentication()
.AddSpotify(options => {
options.ClientId = "xxxx.....";
options.ClientSecret = "xxxx....";
options.CallbackPath = "/callback";
options.Events.OnRemoteFailure = (context) =>
{
// Handle failed login attempts here
return Task.CompletedTask;
};
}; // end of spotify options
解决方案
如果您按照教程添加了https://localhost:44377/callback
作为重定向 URL 到https://developer.spotify.com/dashboard/上的应用程序。当您将应用程序部署到 Azure 应用服务时,它会在https://<your-app-name>.azurewebsites.net
而不是localhost
. 在 OAuth 中,有一个安全功能强制 OAuth 令牌仅转发到白名单 URL。否则,攻击者可能会伪造一个登录 URL,该 URL 将在身份验证过程结束时为他提供令牌。
你的待办事项:
- 转到https://developer.spotify.com/dashboard/
- 选择您的应用程序。
- 点击“编辑设置”
- 在“重定向 URI”部分中添加您的地址
https://<your-app-name>.azurewebsites.net
(替换your-app-name
)并单击添加。
现在您应该能够登录到部署在 Azure 应用服务上的应用程序。这种重定向 URL 的白名单对于(所有)OAuth 实现是通用的。唯一不同的是您必须如何编辑白名单。
推荐阅读
- mysql - 连续手动更新主键会导致后续插入失败/键的重复条目
- sql-server - 更改现有实体框架连接的应用程序名称?
- c# - 使用反射 c# 获取 JsonProperty 属性的名称
- swift - 使用 SnapKit 长宽比和更小的尺寸
- go - 如何通过端到端的微服务链跟踪请求?
- android - 在 reactNative 中运行模拟器和 gradle 的问题
- keycloak - 是否可以让多个 Keycloak 领域连接到同一个 icCube 服务器?
- python - 将多个 ImageDataGenerator 的输出合并到一个张量
- arduino - Arduino LED Matrix 从串口接收数据非常慢
- python - 在循环中多次更改变量的值