带有 JSON 的 Spring security facebook 身份验证插件不会创建 jsessionid

Posted

技术标签:

【中文标题】带有 JSON 的 Spring security facebook 身份验证插件不会创建 jsessionid【英文标题】:Spring security facebook authentication plugin with JSON doesn´t create a jsessionid 【发布时间】:2014-07-09 05:22:20 【问题描述】:

我有一个用 Grails 制作的 rest API,我可以通过 Ajax auth 使用 spring security,并将 jsessionid cookie 存储在客户端中,但是当我使用 'j_spring_security_facebook_json?access_token=' 登录时,它不会创建 jsessionid cookie。 ..而且我无法将会话存储在客户端中。

这个问题有解决方案吗?谢谢。

【问题讨论】:

你如何使用这个api?来自哪个客户?就像来自同一浏览器或独立 RESTful api 的 ajax 端点? 安卓应用和ios应用。谢谢。 【参考方案1】:

当您使用外部客户端(移动应用)时,在大多数情况下,您必须使用不同的方式来验证您的请求。不是饼干。通常是 OAuth2 或只是基于共享密钥的自定义签名。

j_spring_security_facebook_json auth 应该用作交换点,服务器可以为具有有效 fb 令牌的移动客户端传递密钥/令牌。然后此令牌可用于对以下请求进行身份验证。

请参阅http://splix.github.io/grails-spring-security-facebook/guide/3%20Usage.html#3.5%20Json%20Authentication 上的“如何扩展 JSON 响应”

【讨论】:

是的,我没有使用 OAuth2 插件,因为我不知道如何与您的 facebook 插件结合使用。我在“输入地图”中有带有自定义字段的 FacebookAuthService,但我的问题是。如何将 oauth2 令牌添加到输入映射?谢谢伊戈尔,对不起我的英语水平。 它可以是任何东西,oauth2 只是一个例子,它适用于理想场景。基本上,您需要配置任何其他安全过滤器来验证移动客户端,如果您不想要 OAuth,您可以编写自己的身份验证过滤器

以上是关于带有 JSON 的 Spring security facebook 身份验证插件不会创建 jsessionid的主要内容,如果未能解决你的问题,请参考以下文章

Angular 1.4、POST、Spring Security、CORS

带有 Spring 会话的 Spring Security SAML

带有 spring-boot 和 spring-security 的 JWT

带有 Spring Security 登录和身份验证的 Angular

Spring Security 和 JSON 身份验证

带有 OpenIDAuthenticationFilter 问题的 Spring Security