从移动设备登录 Spring Security、Rest api 和 Facebook

Posted

技术标签:

【中文标题】从移动设备登录 Spring Security、Rest api 和 Facebook【英文标题】:Spring Security, Rest api and Facebook login from mobile device 【发布时间】:2012-11-20 23:34:25 【问题描述】:

我正在开发一个具有 REST api 的 Web 应用程序。目前,Api 通过表单登录身份验证在服务器端通过 spring 安全性受到保护。最近我还添加了 spring social 以允许通过 facebook 和 twitter 访问,所有这些都有效。因此,必须注册用户才能访问某个端点。

现在我必须构建一个必须访问 REST api 的移动应用程序,我想知道应该使用什么策略。

我看到 facebook 有一个 android/ios sdk 允许在移动端进行身份验证。因此,一旦用户在移动设备上通过身份验证,我应该向我的服务器发出请求,那么我应该如何在服务器端对用户进行身份验证以访问资源?

如果您认为这不是一个好的解决方案,您能否给我一个建议,我应该如何解决这个问题?

【问题讨论】:

为了更安全,您应该在移动端和后端都进行身份验证,永远不要信任前端。在这种情况下,在手机上进行身份验证后,您只需将 access_token 发送到后端 API,然后后端需要重新验证该令牌以更安全。示例:AccessGrant accessGrant = new AccessGrant(accessToken);连接 连接 = facebookConnectionFactory.createConnection(accessGrant); 【参考方案1】:

两种选择:

    您的移动应用程序可以通过 form-login 或 spring social 登录到您的 API,就像您的其他客户端代码一样。只需在登录后通过 API 调用发送相同的会话 ID cookie。 您可以允许您的应用通过HTTP-Basic 接受用户名和密码作为 HTTP 标头,以节省初始登录步骤。如果您不需要在每个会话中进行大量 API 调用,这可能会更有用。

【讨论】:

以上是关于从移动设备登录 Spring Security、Rest api 和 Facebook的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring Security 时移动和桌面的不同登录页面

Spring mvc / security:从spring security中排除登录页面

社交登录,spring-security-oauth2 和 spring-security-jwt?

2022-06-12 spring security 配置json登录filter

Spring security:以编程方式登录

Grails/Spring Security:无法使用新创建的用户登录