前后端分离的 spring cloud 微服务中对 spring security 到底该怎么使用?感觉有点懵。

2021-08-19 11:54:14 +08:00
 polyang
一个 spring cloud 系列微服务中通常包含网关微服务、用户微服务、订单微服务(或者其他类似的业务微服务),对于此,我看网上很多文章都说到用 spring security oauth 2.0,然后认证时还需要跳转登录页面,但是现在都是前后端分离的,可能不可能使用认证服务的登录页面吧?
PS:oauth 2.0 的流程我是清楚的,只是不知道 spring security 到底该怎么在 spring cloud 中应用。
2711 次点击
所在节点    程序员
15 条回复
harde
2021-08-19 11:59:28 +08:00
技术选型是架构的事,如果你不知道要不要用它,那么答案就是不要用。

不要为了用某种技术而用某种技术,适合才是最好的。
jimmyismagic
2021-08-19 12:02:58 +08:00
可以不跳啊
xuanbg
2021-08-19 12:57:26 +08:00
别用,自己撸一个更简单
totoro52
2021-08-19 13:33:52 +08:00
https://v2ex.com/t/796071#reply52 看我这个帖子 别踩坑了
mmdsun
2021-08-19 13:41:36 +08:00
可以用 spring cloud security

有 OAuth2RestTemplate

https://spring.io/projects/spring-cloud-security
arbit
2021-08-19 14:24:42 +08:00
之前也遇到这个问题,看了码云上开源的那几个用 cloud 搭建的项目,后台管理都是用的 oath2 中的密码模式登录,但是最新版本 security 废弃了 authorization Server,很多类过时了,项目也没有更新
后面考虑了,其实基于角色的 rbac 权限模块也没多少内容,还不如自己实现灵活一点
开源的可以参考下 sa-token 这个项目
polyang
2021-08-19 14:29:01 +08:00
@harde
@xuanbg
@totoro52
@arbit 谢谢各位,其实我的意思是想知道一下怎么用,不一定生产中会用到,但起码得知道这个,不然以后面试啥的,别人问了答不出来就不好了。
polyang
2021-08-19 14:29:23 +08:00
@mmdsun 好的,谢谢,我去瞅瞅
arbit
2021-08-19 14:33:33 +08:00
@polyang #7 我理解的是像做后台管理的时候需要登录,前后端分离用的前端页面,然后登录接口用的 oauth2 的密码模式(授权码模式才需要跳转页面),登录成功后返回 token,再调用其他接口就是了
然后当有其他三方的应用想接入当前平台的微服务,就用到授权码模式,可以定义一个登录页面,用于三方应用授权码登录了,登录成功后跳转会三方应用的页面
totoro52
2021-08-19 14:56:21 +08:00
@polyang 我强烈不推荐你使用官方的 oauth 包 从 5.2 之前 跳动非常大 官方频繁改动 而且不能完全满足国内业务需求 如果真要 自己手撸比这个快
x940727
2021-08-19 16:06:35 +08:00
Spring Cloud 用 Spring Cloud Oauth 的依赖就可以了,如果你需要自己实现一个 OAuth 授权中心,Spring Authorization Server 2021 年 8 月 17 号正式移动到 Spring Project 里面了,估计已经可以正式环境使用了,就是资料少点,之前是 Experimental 的。
Macolor21
2021-08-19 17:05:53 +08:00
@x940727 正解
jorneyr
2021-08-19 17:20:45 +08:00
Web 端使用 Ajax 请求数据先到 Gateway,Gateway 发现要请求的资源需要登陆,而你还没登陆,就返回一个未登陆的结果,Web 端跳转到登录页面进行登陆,登陆的方式也是用 Ajax 提交,而不是 Spring Security 的 UsernamePasswordAuthenticationFilter (这个和登录网页一起用的)。
cheng6563
2021-08-20 09:21:35 +08:00
别用,这组件太乱了,搭项目时搞了大半天,过了几天要修改点需求,前面配的东西全忘了。
KOMA1NIUJUNSHENG
240 天前
做免费 AI 生成图片的套壳软件?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/796724

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX