【问题标题】:Flask user auth with Spring Security使用 Spring Security 进行烧瓶用户身份验证
【发布时间】:2016-07-17 08:32:42
【问题描述】:
我有 2 个应用程序,每个应用程序都有自己的身份验证系统。
- 一个使用spring security的java后端/js前端
- 基本上只是一个网站的python-flask 应用程序。身份验证是通过 Flask-Login 完成的。
我想在他们两人之间进行一次登录和会话。由于身份验证对于 java 应用程序来说更为重要,我倾向于让 spring 处理用户身份验证......但是我需要 Flask 来“知道”用户是否登录,他们是谁,等等。
有没有简单的方法可以做到这一点?
【问题讨论】:
标签:
authentication
spring-security
flask
【解决方案1】:
处理此问题的最简单方法是让 Flask 调用 Java 应用程序中的端点,传递用户名和密码 - 然后让该端点以 JSON 格式返回有关用户的必要信息。但这不会让您获得 SSO(用户可以登录到 Flask 应用程序,但不能登录到 Spring 应用程序)。
稍微复杂一点的替代方法是让用户始终登录 Spring 应用程序,但使用 OAuth 重定向(Spring 有 spring-security-oauth,Flask 有 Flask-OAuth) - 所以当用户从 Flask 登录,他们实际上是登录到 Spring,然后用户被重定向返回到 Flask 应用程序,并带有一个令牌,Flask 使用该令牌从 Spring 中检索该用户的信息。这让您获得 SSO(如果用户已经登录,您只需告诉 Spring 使用令牌重定向回指定的 Flask 端点,Flask 使用令牌从 Spring 管理的端点获取用户的信息,如上)。