Servicestack身份验证IsAuthenticated始终为false

时间:2016-08-06 17:42:30

标签: redis servicestack

您正在尝试使用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。

We can see that isAuthenticated is False

任何人都可以让我更多地了解OAuth,因为它涉及到Mobile时有很多秘密。

例如:我应该在LinkedIn控制台中给出什么重定向Uri ...!如果我使用OAuth for Mobiles ..?如何在每个App StartUp上刷新会话。

1 个答案:

答案 0 :(得分:1)

您的屏幕截图未显示经过身份验证的用户会话,其中包含IsAuthenticated = true并包含每个OAuth提供商在ProviderOAuthAccess集合中返回的OAuth详细信息。

ServiceStack OAuth Live Demos

有关使用Google和LinkedIn OAuth2的实时演示的示例,请参阅httpbenchmarks.servicestack.netHttpBenchmarks Github Repo包含分步指南,说明如何在ServiceStack中配置OAuth,包括应用程序设置配置的示例以及如何配置Glimpse以检查DotNetOpenAuth错误。

mvc.servicestack.net实时演示是另一个包含使用多个Auth Providers的工作配置的示例。

使用AppHost AppSettings

注册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) 
    }));