我似乎无法理解为什么我从identityserver获取未经授权的客户端。我使用带有Angular 4 ui和asp.net核心web API的oidc客户端。我无法连接到identity server,因为每次它返回时,我的客户端都是未经授权的客户端。
这是已注册的客户端:
new Client
{
ClientId = "EStudent",
ClientName = "EStudent",
AllowedGrantTypes = GrantTypes.Implicit,
RequireClientSecret = false,
AllowAccessTokensViaBrowser = true,
AllowedCorsOrigins = { "http://localhost:63150" },
LogoutSessionRequired = false,
RequireConsent = false,
AllowedScopes = new List<string>
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
"UsersAPI",
},
AlwaysIncludeUserClaimsInIdToken = true,
RedirectUris = {
"http://localhost:63150/oauth.html"
},
PostLogoutRedirectUris = {
"http://localhost:63150/",
$"{this._baseAddress}/index.html"
},
AllowOfflineAccess = true,
}
这是Angular中的身份验证服务:
import { Injectable, EventEmitter } from '@angular/core';
import { Http, Headers, RequestOptions, Response } from '@angular/http';
import { Observable } from 'rxjs/Rx';
import { UserManager, User } from 'oidc-client';
import { environment } from '../../../environments/environment';
const settings: any = {
authority: 'http://localhost:8200/oauth',
client_id: 'EStudent',
redirect_uri: 'http://localhost:63150/auth.html',
post_logout_redirect_uri: 'http://localhost:63150/index.html',
response_type: 'id_token token',
scope: 'openid profile UsersAPI',
silent_redirect_uri: 'http://localhost:63150/silent-renew.html',
automaticSilentRenew: true,
accessTokenExpiringNotificationTime: 4,
// silentRequestTimeout:10000,
filterProtocolClaims: true,
loadUserInfo: true
};
@Injectable()
export class AuthService {
mgr: UserManager = new UserManager(settings);
userLoadededEvent: EventEmitter<User> = new EventEmitter<User>();
currentUser: User;
loggedIn = false;
authHeaders: Headers;
constructor(private http: Http) {
this.mgr.getUser().then((user) => {
if (user) {
this.loggedIn = true;
this.currentUser = user;
this.userLoadededEvent.emit(user);
} else {
this.loggedIn = false;
}
}).catch((err) => {
this.loggedIn = false;
});
this.mgr.events.addUserLoaded((user) => {
this.currentUser = user;
this.loggedIn = !(user === undefined);
if (!environment.production) {
console.log('authService addUserLoaded', user);
}
});
this.mgr.events.addUserUnloaded((e) => {
if (!environment.production) {
console.log('user unloaded');
}
this.loggedIn = false;
});
}
}
最后,我像这样调用identityserver:
constructor(public oidcSecurityService: AuthService) { }
ngOnInit() {
this.oidcSecurityService.mgr.signinRedirect();
}
发送的请求如下:http://localhost:8200/oauth/connect/authorize?client_id=EStudent
您的IdentityServer客户端
有一个与请求中使用的不匹配的重定向URI
:
http://localhost:63150/oauth.html
在请求中,您使用:
http://localhost:63150/auth.html
注意缺少的o
。
致力于使用Spring实现Oau2。我想实现隐式工作流: 我的配置文件: 到目前为止,这是有效的。数据库中还会生成一个用户。 问题如下。当我尝试执行以下请求时: http://localhost:8080/oauth/token?grant_type=authorization_code 我总是会看到一个弹出窗口(身份验证),要求我输入用户名和密码。但无论我进入那里,我都不会经过。那么到底哪里出了
我已经使用IWebBrowser2控件实现了oAuth2隐式授权流,身份验证对话框从openAM中出现,我已经输入了用户名和密码,它为我提供了访问令牌。但是我的应用程序如何知道哪个用户名是经过身份验证的,我还需要从我的数据库中验证这个用户名?
在过去,我写过一些java程序,使用两个线程。第一个线程(生产者)从API(C库)读取数据,创建一个java对象,将该对象发送到另一个线程。C API正在传递一个事件流(无限)。线程使用LinkedBlockingQueue作为管道交换对象(put、poll)。第二个线程(使用者)正在处理对象。(我还发现,线程中的代码更易读。第一个线程处理C API的内容并生成适当的java对象,第二个线程不受C
我正在尝试使用隐式、密码和授权流使用Spring OAuth 2设置一个项目。 当我使用相同的令牌endpoint进行隐式验证和其他两种验证时,出现了我的问题,密码和授权需要基本的身份验证来进行客户端验证,而隐式验证不验证客户端机密,我想使用更加密的登录/密码身份验证来进行用户授权。 因此,根据配置,一个或两个流可以工作。拥有两个endpoint似乎是最简单的解决方案,但我找不到如何实现这一点。
我正在做一个基于VLCJ流的项目。我查阅了VLCJ教程中关于如何从下面的代码创建服务器端的内容。客户端如何从服务器获取视频内容?我也编写了客户端代码,但它没有显示任何内容。 如有任何帮助,我们将不胜感激。谢谢. 服务器代码: } 客户端: 正如您在上面看到的,MediaPlayer.PlayMedia(publicServer)应该显示视频内容,但没有显示任何内容。JFrame只是空的。
我需要一些有关Azure API管理服务的帮助。 目前,我们有一个单页应用程序,它使用Azure上托管的两个后端服务(WebApi.NETCore)。为了对用户进行身份验证和授权,我们使用IdentityServer(也作为服务托管在Azure上)SubscriptionService。在这里,IdSrv对用户进行身份验证,并定义webapp可以访问哪些api。如果用户拥有给定API的权限,Sub