跨平台ServiceStack身份验证

时间:2012-10-01 14:14:25

标签: authentication servicestack

构建以下身份验证解决方案的最佳方法是什么?

我有一个独立的(没有与MVC集成)ServiceStack REST服务层。此服务是我所有数据的入口点。客户端上没有存储数据。

我有多个客户端(ASP.Net MVC 4网站,MonoTouch应用,MonoDroid应用,Silverlight应用,MonoMac应用等)。

我想在服务级别提供身份验证(Facebook,Twitter等),包括将用户存储在MongoDBAuthRepository中,但允许客户端提供登录UI(我想要这个吗?)。例如,对于MVC站点,我想将远程ServiceStack身份验证服务(包括Facebook,Twitter)与MVC的身份验证系统集成。看起来实际的身份验证应该在服务端进行,但客户端需要保持身份验证响应。

我已经阅读了wiki,查看了SocialBootstrap,并阅读了论坛,但我仍然对如何以分布式方式工作感到困惑。

1 个答案:

答案 0 :(得分:5)

对于像Twitter + Facebook这样的OAuth选项,您的身份验证应该在浏览器中进行,因为它们都需要从其尊敬的身份验证提供程序重定向,以捕获来自每个用户的可信验证。一些移动应用程序通过为Twitter + FB Auth嵌入浏览器小部件来实现此目的。

用户在同一个经过身份验证的会话中使用Twitter + Facebook和凭据进行身份验证后,ServiceStack's AuthProviders会自动将所有身份验证信息合并到同一帐户中。因此,稍后您将能够使用1个身份验证提供程序登录,但可以访问所有3上的可用信息。SocialBootstrapApi项目提供了此示例。