Servicestack跨站点Auth难题

时间:2014-03-12 08:33:03

标签: servicestack servicestack-auth

我有一个MVC网站(单页JS应用程序类型的东西),如果需要可以安装SS NuGets。

我有一个API,目前(并且非常成功)使用SS auth插件允许我通过twitter,fb等对用户进行身份验证。此API目前允许PHP前端获得访问权。

我希望MVC网站能够以与PHP网站相同的方式进行身份验证,但我希望它以更加MVC / SS的方式进行 - 而不仅仅是检查ss-id以及是否' s不存在重定向到登录页面。我不是PHP开发人员,但我的理解是当用户在PHP站点上请求页面时 - 它会检查cookie中是否存在ss-id - 如果有,那么用户已经过身份验证,如果没有,则用户未经过身份验证,并被推送到PHP网站上的/ login,该网站通过twitter,fb等按钮进行身份验证。

我该怎么做?我可以将SS Authenticate属性添加到控制器,但这还够吗?

所以工作流程将是;

用户转到http://somesite.com

他们尚未登录,因此会被重定向到http://somesite.com/login

他们点击该页面上的Twitter登录按钮并重定向到

http://api.somesite.com/auth/twitter将其转发给Twitter进行身份验证

经过身份验证后,会将其发送回http://somesite.com并使用有效的会话

现在 - 我的问题是,我可以像这样验证他们吗?

如果是这样,最好的方法是什么?我想将[Authenticate]属性添加到控制器并完成它。如果我设置RavenUserAuthRepository以查看与Db的API相同的位置并添加[Authenticate]属性,它似乎不够?

[另一个编辑]

所以 - 我现在已经将插件添加到MVC站点,以便我可以访问somesite.com/auth/twitter,它使用api使用的相同RavenUserAuthRepository - 因此它共享一个数据库。 / p>

我创建了一个单独的Twitter应用程序,因此它可以正确重定向。

一切似乎都在登录方面。除了当我尝试使用[Authenticate]进入控制器时,TryAuthenticate内的RavenUserAuthRepository永远不会被调用。

对于工作流程的其余部分 - 当它从经过身份验证的Twitter返回时,它会调用RavenUserAuthRepository中的方法,例如GetUserAuth

0 个答案:

没有答案