当前位置: 首页 > 知识库问答 >
问题:

spring社交客户端ajax登录提供程序

於乐
2023-03-14

我在这里找一些社会融合专家来启发我这个困惑。我的Web服务器正在使用Spring安全来验证用户登录,注册。我最近在我的网络服务器上实现了Spring社交,一切都非常顺利。以fb为例,当用户从facebook登录时,Spring Social将构建outh url并将用户重定向到facebook。一旦用户在facebook认证,它将重定向他们回到我的网站。

我需要实现我的移动应用程序(html5 phonegap)具有相同的登录功能。我浏览了facebook整合页面。有几种方法可以为html5应用程序进行身份验证。我选择了服务器端实现:http://developers.facebook.com/docs/authentication/server-side/客户端登录,因为我仍然需要Spring辅助来检查电子邮件是否存在于我的网络服务器中,否则重定向注册页面。

我遇到的第一个问题是在移动应用程序中重定向,我需要弹出窗口重定向到提供商登录页面,而不是应用程序窗口。我设法通过ajax调用获得重定向url,并在childbrowser phonegap插件中打开新窗口。现在的问题是,当用户通过提供者进行身份验证时,服务器并没有简单的方法向客户端通知“用户已验证”,因为它位于单独的浏览器中。

onFBlogin: function(){
Ext.Ajax.request({
    url: APP.domain + "api/mobile/signin/facebook.json",
    method: 'POST',
    success: function(result, request) {
    var json = JSON.parse(result.responseText);
         window.plugins.childBrowser.onLocationChange = function (url) {
            if(url==APP.domain+"api/mobile/success"){
            window.plugins.childBrowser.close();
            }
    };
    window.plugins.childBrowser.showWebPage(json.outhurl,{ showLocationBar: true });
    },
    failure: function(result, request) {
          console.log("request facebook signin redirect url" + result);
    },
});
}

通常,在SpringSecurity中,如果用户通过我的RESTAPI进行了身份验证,客户端可以通过成功的回调来发布请求并获得经过身份验证的令牌。我可以为每个RESTAPI调用重用这些令牌。根据上述代码。我不知道身份验证是否完成,以及何时应该将令牌从服务器发送到客户端。

如果你能给我一些想法,我将不胜感激。谢谢!

共有1个答案

杜嘉慕
2023-03-14

我也面临同样的问题。我将尝试实现以下目标:

在Facebook中配置你的应用程序,使返回的地址类似于http://what-ever-dot-com/receiveFacebookResponse,它基本上响应要在刚刚打开的弹出窗口上执行的javascript代码。此js代码将关闭弹出窗口并在is父窗口(应用程序所在的窗口)上执行函数。此功能必须存在于您的应用程序中。您将其(及其所有参数)放入会话(或cookie)中。此函数应该执行一个ajax调用来更改应用程序的标题,基本上是将“login here”消息更改为“Hello logged user”(以及您可能需要的许多其他内容),并且很可能是完成已启动但登录过程中断的操作。

我会尽力告诉你的。我很高兴听到你以其他方式做这件事。

 类似资料:
  • 我正在开发一个rest服务,它将通过浏览器、单页应用程序和移动应用程序在浏览器中提供。现在我的服务没有Spring就可以工作了。oauth2客户机是在过滤器内部实现的,可以说是“手工”。 我正在尝试将其迁移到spring Boot。阅读了大量的手册和谷歌搜索了大量的信息,我正在努力了解以下内容是否对客户来说是可能的: > 通过Spring-Security-Oauth2提供的所有帮助,使用face

  • 在注册时,KeyClope提供了通过KeyClope主题的注册页面模板,通过“输入”元素添加自定义用户属性的能力,这些元素看起来像: 但是,这似乎只有在用户创建帐户并提交表单时才有效。 如果用户通过社交身份提供商(谷歌、微软、github等)登录我们如何添加自定义用户属性?

  • security_applicationcontext.xml UserDetailService实现 } 斯塔克特雷斯。虽然没有例外,但我捕获了stacktrace以供参考。

  • 我用Jhipster生成器生成了一个项目,并尝试使用android客户端连接到服务器。我的登录部分有问题,我不知道如何生成/获取登录所需的csrf令牌。我看到web客户端将此令牌作为请求的一部分发送。 当我试图从邮递员和Android访问路线我收到这个错误: 谢谢

  • 通过Spring Security OAuth2重用终端用户Google身份验证以访问Web应用程序中的Google日历API 我能够通过Spring Security创建一个小的Spring Boot Web应用程序并进行登录 当应用程序启动时,我可以访问http://localhost:8080/user用户被要求谷歌登录。成功登录后,浏览器中会显示json配置文件,作为以下用户的响应: 我想

  • 问题内容: 我对Java EE还是很陌生,在开始我要创建的应用程序上遇到很多麻烦。我想要的是一个连接到EJB项目的Swing应用程序客户端。我正在使用Glassfish v3.1.1。到目前为止,我有两个无状态的Bean,其中一个是使用@DeclareRoles和Glassfish中的JDBC领域来保护的,另一个是客户端的开始。 运行客户端时,您可以选择用户名,键入密码,然后登录。如果使用正确的密