如何使用现有的servicestack oauth2提供商,例如google,并且只将其限制为我为用户创建的一个帐户?
基本上,我想要检查Api访问权限,以便所有拥有Google帐户的人都可以使用它。
答案 0 :(得分:1)
您可以使用CustomValidationFilter
添加自己的自定义验证,返回非 null
响应将取消身份验证并返回所需的错误响应,例如:
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
}
},
}));