1
예를 들어 기존 servicestack oauth2 공급자 (예 : Google)를 사용하고 사용자를 위해 만든 하나의 계정으로 어떻게 제한 할 수 있습니까?ServiceStack 및 OAuth2
기본적으로 Google은 Api에 대한 액세스 권한을 계속 유지하면서 Google 계정을 가진 모든 사람이 사용할 수 있도록하고 싶습니다.
예를 들어 기존 servicestack oauth2 공급자 (예 : Google)를 사용하고 사용자를 위해 만든 하나의 계정으로 어떻게 제한 할 수 있습니까?ServiceStack 및 OAuth2
기본적으로 Google은 Api에 대한 액세스 권한을 계속 유지하면서 Google 계정을 가진 모든 사람이 사용할 수 있도록하고 싶습니다.
당신이 원하는 오류 응답을 인증을 취소하고 반환하는 비null
응답을 반환, 자신의 사용자 정의 유효성 검사를 추가 할 수 CustomValidationFilter
을 사용할 수 있습니다, 예를 들면 :
Plugins.Add(new AuthFeature(() => new CustomUserSession(),
new IAuthProvider[] {
new GoogleOAuth2Provider(appSettings) {
CustomValidationFilter = authCtx => {
if (!AllowUser(authCtx.Session, authCtx.AuthTokens)) {
var url = authCtx.AuthProvider.GetReferrerUrl(
authCtx.Service, authCtx.Session
).AddParam("f","GoogleOAuthNotAllowed");
return authCtx.Service.Redirect(url);
}
return null; //Allow Authentication through
}
},
}));
가 AllowUser되는 방법은 나는 곳이 될 것입니다 특정 사용자를 허용하기 위해 내 자신의 데이터베이스에 대해 검사합니까? – user3500462
... 내 뜻은 Google이 성공적으로 인증하면 사용자 액세스를 허용하거나 거부하는 방법입니다. – user3500462
@ user3500462 예 AllowUser는 사용자 세션과 Google OAuth 토큰을 검사하고 확인할 수있는 사용자 지정 메서드입니다. '? f = GoogleOAuthNotAllowed'를 사용하여 리퍼러 페이지로 리디렉션함으로써 사용자를 거부하고 사용자 정의 된 오류 페이지를 제공 할 수 있는지 여부를 결정합니다. – mythz