您正在尝试使用servicestack提供的OAuth身份验证
plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] {
new BasicAuthProvider(), new LinkedInOAuth2Provider(new AppSettings()),
new GoogleOAuth2Provider(new AppSettings()) }));
//Use Redis Repo
var userRepository = new RedisAuthRepository(redisClientsManager);
container.Register<IUserAuthRepository>(userRepository);
//Register Users with redis
Plugins.Add(new RegistrationFeature());
在Google / LinkedIn成功验证后,redis AuthRepo包含此内容,即使成功验证后,我们也可以看到isAuthenticated为False。
任何人都可以让我更多地了解OAuth,因为它涉及到Mobile时有很多秘密。
例如:我应该在LinkedIn控制台中给出什么重定向Uri ...!如果我使用OAuth for Mobiles ..?如何在每个App StartUp上刷新会话。
答案 0 :(得分:1)
您的屏幕截图未显示经过身份验证的用户会话,其中包含IsAuthenticated = true
并包含每个OAuth提供商在ProviderOAuthAccess
集合中返回的OAuth详细信息。
有关使用Google和LinkedIn OAuth2的实时演示的示例,请参阅httpbenchmarks.servicestack.net。 HttpBenchmarks Github Repo包含分步指南,说明如何在ServiceStack中配置OAuth,包括应用程序设置配置的示例以及如何配置Glimpse以检查DotNetOpenAuth错误。
mvc.servicestack.net实时演示是另一个包含使用多个Auth Providers的工作配置的示例。
注册OAuth提供商时,您应该使用AppHost AppSettings
而不是注入new AppSettings()
,这样所有Auth Providers都将使用相同的配置AppSettings for your AppHost,例如:< / p>
Plugins.Add(new AuthFeature(() => new AuthUserSession(),
new IAuthProvider[] {
new BasicAuthProvider(),
new LinkedInOAuth2Provider(base.AppSettings),
new GoogleOAuth2Provider(base.AppSettings)
}));