kawhii / sso

cas单点登录系统,其中包括cas认证服务,配置中心,监控平台,服务管理的高可用项目
https://kawhii.github.io/sso
MIT License
937 stars 428 forks source link

对于前后端分离的项目如何集成cas #57

Open kinggggg opened 6 years ago

kinggggg commented 6 years ago

关于问题报告 对于目前前后端的项目,如果直接把cas 官方提供的连接器配置在后端的话,发现有非常大的局限性,比如跳转,比如验证ST

提出问题

对于前后端分离的项目如何集成cas

需求

公司目前前端采用vue+node,后端采用springmvc的方式;如果直接在springmvc中配置cas官方提供的java拦截器话,对于跳转不能很好的适用目前的业务状态;cas 官方提供了rest接口认证的方式[https://apereo.github.io/cas/development/protocol/REST-Protocol.html],能否通过这个rest接口方式将cas进行集成

kawhii commented 6 years ago

会安排时间出个例子,敬请期待

LingzZhiyi commented 5 years ago

我已经被前后分离 搞疯了。。

BigbigY commented 5 years ago

@kawhii 现在有例子了吗,前后端分离搞的有点懵逼

LingzZhiyi commented 5 years ago

@kawhii 现在有例子了吗,前后端分离搞的有点懵逼

https://blog.csdn.net/qq_37256345/article/details/88840061 我这边有个曲线方案。目前我只能这样解决

JamesMackerel commented 5 years ago

cas 官方提供了rest接口认证的方式[https://apereo.github.io/cas/development/protocol/REST-Protocol.html],能否通过这个rest接口方式将cas进行集成

这个接口的作用不大,因为它实际上是提供给像是 Android APP 之类的那种端上应用使用的。首先,这样的应用场景不像浏览器,没有跨域的限制,所以可以不用在 CAS 服务器上配置 CORS 头就能访问得到。第二,根据官方文档,这个接口的使用场景是调用方将用户的凭据发送到 CAS 服务器,以获取一个 TGT ,并且建议这个 TGT 是针对服务做过限制的,只能给某个服务发方 ST。

综上所述, rest 接口不适用于现代前端场景下的 SPA。

xietongjian commented 3 years ago

需要重写cas的AbstractCasFilter过滤器,把重定向的功能去掉。可以返回一个http状态码。然后前端根据这个状态码进行跳转。如果未登录则前端跳转到cas的登录页面。