Ajax 使用securesocial services而不使用其视图

Ajax 使用securesocial services而不使用其视图,ajax,authentication,login,playframework,securesocial,Ajax,Authentication,Login,Playframework,Securesocial,我开始在我的play/scala应用程序中集成SecureSocial,但我并不喜欢它在不同视图之间进行的所有重定向 示例-尝试从它的默认登录页面登录,如果您输入错误的密码,您将被重定向到不同的页面(url),但使用相同的登录表单。唯一不同的是有一条错误消息 我希望在主页的一角有一个简单的登录表单(用户/密码提供程序),使用ajax提交数据,在服务器上验证这些数据,并做出响应以显示错误消息或更改window.location。 在这个表单旁边,我将放置一个链接,指向一个更高级的登录页面,该页面添

我开始在我的play/scala应用程序中集成SecureSocial,但我并不喜欢它在不同视图之间进行的所有重定向

示例-尝试从它的默认登录页面登录,如果您输入错误的密码,您将被重定向到不同的页面(url),但使用相同的登录表单。唯一不同的是有一条错误消息

我希望在主页的一角有一个简单的登录表单(用户/密码提供程序),使用ajax提交数据,在服务器上验证这些数据,并做出响应以显示错误消息或更改window.location。 在这个表单旁边,我将放置一个链接,指向一个更高级的登录页面,该页面添加了使用其他提供商(如fb/twitter等)的选项。。 但是从这个页面上,我还想使用ajax来提交详细信息并获得响应

我试图浏览SecureSocial资源,但有点迷失了方向

有人能告诉我如何使用SecureSocial,但不使用它的任何视图吗


注意:我对自定义他们的视图不感兴趣,这不仅仅是CSS/设计问题,我希望以Ajax方式处理登录详细信息,而不是使用常规表单提交,然后重定向…

在SecureSocial代码中进行了更多的搜索之后,我对它的操作有了更好的理解

您可以单独使用play.plugins文件中列出的任何提供者,通过自己的登录/验证代码对用户信息进行验证。只需确保发送提供商所需的正确参数

我喜欢SecureSocial的ProviderController类根据参数动态决定要使用的提供者的方式。但我不喜欢它的反应-重定向。。我想用一些数据响应ajax请求,并让客户端js处理它

这是我的解决方案:

几乎将所有ProviderController代码复制到我自己的Auth.scala文件(控制器)。 更改了与“case ex,case _”相关的重定向,在成功验证时保留重定向,因为它添加了与用户相关的SecureSocial会话密钥。 已从我的路由文件中删除所有与SecureSocial相关的路由。 在logintype中添加一个额外的隐藏字段(userpass/google/fb/etc…),并将我的登录ajax帖子配置为将其与帖子一起发送到我的Auth控制器


如果您需要更多信息,请在此发表评论,我将编辑答案。

我很感兴趣。。。基本上,因为我在弹出窗口中显示登录屏幕,如果用户登录或取消,我不想重新加载页面(并丢失用户的输入)。。。我只想关闭弹出窗口,并在必要时更新登录状态。我想我需要一个Ajax登录来实现这一点。很抱歉有点晚的评论。是的,你需要ajax和安全的社会工作与页面正常的请求和重定向。。。最终,我停止使用它,并受auth20模块的启发创建了自己的两个auth类。它不太复杂,而且最灵活:)我有完全相同的问题。我想从我的Play应用程序中删除所有HTML模板(包括SecureSocial自定义模板),并用JSON/JavaScript替换它们。我开始重新设计一些社会资源。。。但由于我只需要一个用户名/密码提供者,我认为值得创建自己的解决方案。你能给我一些关于你如何解决这个问题的提示吗?有没有好的教程或示例可以帮助我编写一个像样的auth-api?谢谢。当然,我使用play auth作为起点:。如果你只需要用户密码,就像它是伟大的为你。它给你更多的控制权,而不是安全的社交网络。您可以定义成功/失败登录时发生的操作,定义如何对登录进行身份验证等。缺点是你必须自己制作登录屏幕。我更进一步,还更改了一些登录令牌机制。cookie机制不适合我们的产品。我们需要一款适用于移动应用程序的软件。你可以在stackoveflow上找到许多auth建议。我就是这样做的。您是否遇到了“java.lang.ClassNotFoundException:securesocial.controllers.ReverseProviderController”的问题。我接受了你的建议,复制了ProviderController。现在可以使用正确的凭据登录,但如果凭据错误,SecureSocial会尝试实例化此生成的类,但由于某些原因,该类现在没有生成(即使我已在路由文件中保留对它的引用)。