集成外部提供商(即Google与Thinktecture Identity Server v3)时出现问题。出现以下错误:“客户端应用程序未知或未获得授权。”
是否有人对此错误有任何想法。
最佳答案
@但是,似乎您在客户端和服务器中的RedirectUri值不匹配。
客户端启动中的RedirectUri属性定义身份服务器进行身份验证后将调用的URI。服务器配置中的RedirectUris定义了可以请求身份验证的允许URI的列表。因此,客户端启动RedirectUri必须包含在服务器的RedirectUris列表中。
看起来您的客户端的RedirectUri当前指向服务器的URI。您的客户端在端口46289上运行吗?如果是这样,请尝试在客户端启动时将RedirectUri属性的值更改为https://localhost:46289。您可能还想尝试修改服务器的redirectUris值以使用https而不是http,假设您的客户端确实可以通过https访问。
服务器客户端存储:
public static IEnumerable<Client> Get()
{
return new[] {
new Client {
Enabled = true,
ClientName = "MVC Client",
ClientId = "mvc",
Flow = Flows.Implicit,
RedirectUris = new List<string>{
"https://localhost:46289/" // client home url
客户端启动:
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
app.UseCookieAuthentication(new CookieAuthenticationOptions {
AuthenticationType = "Cookies"
});
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions {
Authority = "https://localhost:44300/identity",
ClientId = "mvc",
RedirectUri = "https://localhost:46289/", //must be in server's Client.RedirectUris
ResponseType = "id_token",
SignInAsAuthenticationType = "Cookies"
});