移动设备注册 Spring Social

2024-02-20

我正在尝试将 Spring Social 用于我的 REST 服务和移动应用程序。

我想知道最好的方法是什么。

我打算使用linkedin, google 登录和密码验证在我的里面移动应用。这个社交登录应该是连接到我的数据库中的用户.

我的 Spring 应用程序将充当 API,应使用 JWT 令牌进行保护。随后,移动应用程序将使用此 JWT 令牌来使用 API。

在我的手机上,我希望能够使用 linkedin、facebook 或密码注册/登录。

据我了解,移动设备需要与中描述的不同的 oauth 流程https://spring.io/guides/tutorials/spring-boot-oauth2/ https://spring.io/guides/tutorials/spring-boot-oauth2/

似乎需要“代码交换的证明密钥”流程,如下所示:https://auth0.com/docs/api-auth/grant/authorization-code-pkce https://auth0.com/docs/api-auth/grant/authorization-code-pkce

它是否正确?我没有找到任何信息如何最好地使用 Spring Social 来做到这一点以及 Spring Social 是否支持此用例。

有人能指出我正确的方向吗?我刚刚找到了如何使用单页应用程序而不是移动应用程序执行此操作的信息。预先非常感谢!


一种可能的方法是

  1. 移动应用程序使用 LinkedIn 或 Google 的 SDK 执行 SSO 来检索 authN 令牌。
  2. 移动应用程序将其传递给后端服务,后端服务使用它从 oauth 服务检索用户详细信息(例如电子邮件)。
  3. 后端服务可以对用户详细信息执行其他工作(例如,与现有用户链接)。
  4. 后端服务将 JWT 令牌返回到移动应用程序,从而结束 SSO。

SSO 应该能够返回电子邮件地址,供您链接用户。有时您需要明确申请许可(Facebook 需要)。

此方法的关键点在于,它完全避免在后端服务中使用 OAuth2 库,因为它现在是通过使用 SSO 提供商的 SDK 在移动应用程序中处理的。

The flow is summarized in the following drawing: Mobile SSO Flow

======== 编辑:

我们使用这种方法通过一个移动应用程序进行 Facebook SSO,效果非常好。移动应用程序位于 iOS 中,后端服务位于 Spring Boot 中。

欢迎讨论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移动设备注册 Spring Social 的相关文章

  • rabbitmq和spring-rabbitmq中的DLX——拒绝消息的一些注意事项

    我确实读过这个参考资料 https www rabbitmq com dlx html https www rabbitmq com dlx html 但这并不能解决我的疑问 即 如果接受消息没有问题 spring rabbitmq发送 a
  • Spring Boot 2.7.8 或 3.x 升级 - Tomcat HTTP 状态 404 - 在 Azure 上找不到

    我目前正在将应用程序从 Spring Boot 2 7 7 升级到 Spring Boot 3 0 2 并在 tomcat 上遇到 404 错误 有趣的是 该应用程序在我的本地计算机上运行良好 但在 Azure 云中却运行不佳 我将 org
  • Spring Boot应用程序一直在重新启动(重新启动循环) - spring.devtools

    我有一个带有嵌入式 tomcat 的 spring boot 应用程序 如果类路径中发生更改 则使用 spring boot devtools 重新启动应用程序 我的 IDE 是 Spring Tool Suite 我切换了 自动构建 因为
  • 配置服务器无法配置数据源:未指定“url”属性,无法配置嵌入数据源

    我正在尝试从包含所有应用程序属性的 github 存储库获取数据库配置 下图说明了我所拥有的服务的结构 当我访问我的配置服务器微服务时 一切正常 即使我在邮递员中测试它 我也会恢复配置 当我尝试运行产品服务时 问题就出现了 指向配置服务器微
  • Java 不提供双向 SSL 客户端证书?

    我正在尝试使用相互 SSL 从 Java Spring Boot 应用程序连接到 NetScaler 端点 我可以使用以下命令通过 OpenSSL 在命令行上按预期进行连接 openssl s client connect xxxx xxx
  • 使用 Keycloak 和 Spring Boot 的多租户

    我正在使用 spring boot 适配器和 keycloak spring boot 适配器来执行多租户 我可以使用 ip 和域名访问页面 但是当我运行 gradlew 脚本时 似乎没有检测到这个 bean 也没有发生任何变化 即使在我添
  • Spring security 3.1.4 和 ShaPasswordEncoder 弃用

    今天 我将我正在开发的应用程序的 spring security 版本从 3 1 3 升级到 3 1 4 并且我注意到了一个弃用警告org springframework security authentication encoding S
  • 卡夫卡监听器中的钩子

    kafka 监听消息之前 之后是否有任何类型的钩子可用 使用案例 必须设置MDC关联id才能进行日志溯源 我在寻找什么 之前 之后回调方法 以便可以在进入时设置 MDC 关联 ID 并最终在退出时清除 MDC 编辑后的场景 我将关联 id
  • Jersey 和 Spring 中的全局异常处理?

    我正在使用 Jersey 和 Spring 3 2 以及 Open CMIS 开发 RESTful Web 服务 我没有使用 Spring 的 MVC 模式 它只是 Spring IOC 和 Jersey SpringServlet 控制器
  • 使用 JWT 创建 PostMan GET 请求

    我是 PostMan 的新手 通常我使用curl 这是获得 JTW 的一个 curl X POST H X Requested With XMLHttpRequest H Content Type application json H Ca
  • 如何在 Spring 中将多个映射合并为一个

    我的上下文文件中定义了几个地图 有没有一种方法可以将这些映射组合成一个包含其所有条目的映射 而无需编写 Java 代码 并且无需使用嵌套映射 我正在寻找 Map m new HashMap 的等效项m putAll carMap m put
  • Pivotal Cloud Foundry - 连接到外部 Oracle 数据库

    我正在创建一个 Spring boot 应用程序 该应用程序连接到一个不由 PCF 管理 或驻留在外部 的 Oracle 数据库 在我的本地开发环境中 我在 application properties 文件中配置了数据库连接详细信息 有人
  • spring中如何使用jackson代替JdkSerializationRedisSerializer

    我在我的一个 Java 应用程序中使用 Redis 并且正在序列化要存储在 Redis 中的对象列表 但是 我注意到使用 RedisTemplate 会使用 JdkSerializationRedisSerializer 相反 我想使用 J
  • 具有特定参数的 Spring AOP 切入点

    我需要创建一个我觉得很难描述的方面 所以让我指出一下想法 com x y 包 或任何子包 中的任何方法 一个方法参数是接口 javax portlet PortletRequest 的实现 该方法中可能有更多参数 它们可以是任何顺序 我需要
  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List

随机推荐

  • 如何在 VSCode 中使用 yapf(或 black)

    我使用以下命令安装了 yapf conda install yapf 并在我的中添加下一行 vscode settings json file python linting pylintEnabled true python linting
  • 使用 Firebase 云功能实现发送电子邮件

    对于我们的网络应用程序 我们目前使用 Firebase 的免费计划 并且需要发送有关各种事件 触发器的电子邮件 问题是 我认为 Mailgun 及其云功能可以完美地完成此任务 但看起来只能将其 API 与 Firebase 的付费计划一起使
  • 无法在 C++20 中将 std::cin 与 char* 或 char[] 一起使用

    It used上班 阅读std cin到动态分配的chararray 或作为参数传入的数组 请参阅下面的 MCVE include
  • 使用 dask 加载大型压缩数据集

    我正在尝试将一个大型压缩数据集加载到 python 中 其结构如下 year zip year month 很多 csv 文件 到目前为止 我已经使用 ZipFile 库迭代每个 CSV 文件并使用 pandas 加载它们 zf ZipFi
  • 加载动画png [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在寻找一个透明的动画加载图标 然而 我知道我很懒 我不想自己做 如果这不是这篇文章的正确论坛 请原谅我 我过去在这里运气很好 有谁知道我在哪里可以
  • 将管道/连接作为上下文参数传递给多处理 Pool.apply_async()

    我想使用管道与池中的流程实例进行通信 但出现错误 让 p 成为 Pool 的一个实例 master pipe worker pipe Pipe self p apply async worker task handler info cont
  • JavaScript 全局变量

    我应该如何创建一个变化变量作为全局变量 所以像这样 function globVar variable window variable 因此 通过这种方式 我也可以在自动模式下创建全局变量 而且我也可以更轻松地为自己创建它们 EDIT 例如
  • 尝试向 MYSQL 表添加新列时失去连接

    我正在尝试向拥有超过 2500 万行的 mysql 表添加一列 我正在运行 sql 命令 ALTER TABLE table name ADD COLUMN column name varchar 128 NULL DEFAULT NULL
  • 第三方API的Cors问题

    我很难从浏览器上的第三方 api 获取数据 https www coinexchange io api v1 getmarkets https www coinexchange io api v1 getmarkets I set mode
  • Git:管理我的应用程序的每个版本?

    我正在使用 git 和 github 并且刚刚完成了 iOS 应用程序的 1 0 版本 从这里开始 我想知道 git 如何才能最好地为我服务 我真的只是在这里寻找最佳实践 以及其他人推荐的管理主要版本的方法 我应该为每个新版本 例如 1 1
  • 从 vba 调用 MS SQL Server 标量 UDF

    我正在对连接到 SQL Server 2005 后端的 Access 2007 accdb 而不是 adp 前端进行编程 我怎样才能打电话scalar我的 vba 代码中的用户定义函数 Dim rst As ADODB Recordset
  • Pywinauto:无法将窗口带到前台

    致力于使用 Python 驱动的自动化工具 想象一下有一个正在运行的应用程序池 APPS POOL Chrome SomeApp Foo 该脚本在循环中运行 每秒 并且需要在它们之间随机切换 Init App object app appl
  • 递归推送所有子模块

    我编写了以下脚本来推送工作区中的所有更改 包括子模块和超级项目 然而 听起来有点奇怪 做我想做的事情是如此复杂 我缺少的还有更好的方法吗 bin bash if ne 1 then echo Illegal number of parame
  • 在 XPath 中使用翻译函数会出现错误

    我必须执行不区分大小写的 XML 搜索 我已经编写了运行良好的 XPath 表达式 但是当我使用translateXPath 表达式内的函数我收到错误 下面是运行良好的 XPath 表达式 string upper ABCDEFGHIJKL
  • 控制台中出现错误:无法加载资源:net::ERR_CONNECTION_RESET

    我刷新了我的应用程序页面并在控制台中收到此错误Failed to load resource net ERR CONNECTION RESET 我尝试重新安装 XAMPP 版本 但这对我不起作用 我认为你正在使用铬 问题是证书不匹配或证书过
  • Android 模拟器在 Ubuntu 11.10 上崩溃

    我在 Ubuntu 11 10 32 位 机器上安装了 Android SDK 我还安装了 Eclipse 3 7 和相关的 Android 开发插件 全部在 openjdk6 上 使用 eclipse 我成功创建了一个 Android 虚
  • Swift distance() 方法抛出致命错误:无法增加 endIndex

    我试图在字符串中找到子字符串匹配 并获取匹配的位置 我无法弄清楚以下代码有什么问题 let str1 hello let cmp let searchRange Range start str1 startIndex end str1 en
  • 浏览器中 bash 命令的代码块忽略路径

    我正在尝试开发一种用户友好的方式来设计 bash 命令的代码突出显示样式 我将使用以下示例来澄清问题这一页 https themeaningfulengineer github io Linux kernel in QtCreator 在下
  • IIS URL 重写规则

    我有一个 AngularJS 应用程序 它利用 URL 重写进行链接 我的重写规则如下
  • 移动设备注册 Spring Social

    我正在尝试将 Spring Social 用于我的 REST 服务和移动应用程序 我想知道最好的方法是什么 我打算使用linkedin google 登录和密码验证在我的里面移动应用 这个社交登录应该是连接到我的数据库中的用户 我的 Spr