想问下所谓的前后端的分离,大家是怎么分离的?
题主是做 Java 的,有的项目是前端直接拿的静态页面过来,然后我这边套成 jsp 。
还有的项目是后端做一个 restful 接口向前端提供 json 数据。然后前端可以直接请求接口拿到数据进行页面加载。
基于这两种方法,问题来了。
基于后端提供接口的方案,加上前端的跨域请求,能够做到前后端完全分离。但是这样后端部署起来有些麻烦。每次完成一个新的接口,都得上传项目到 web 服务器再重新部署。这一点,想问下有没有比较快捷的方式?
还有一个问题是,基于后端接口的话,后端怎么保证数据的安全性呢?例如实现权限控制,靠 cookie 么?
1
xuzywozz 2017-03-31 12:16:13 +08:00
权限控制 要做到无状态的话 好像只有 token ?
|
2
pwcong 2017-03-31 12:18:27 +08:00 1
|
3
linghutf 2017-03-31 12:21:54 +08:00 via Android
我的理解是前后分离可以靠虚拟的中间层传输数据,安全性由 token 保证
|
4
iot 2017-03-31 12:36:03 +08:00
jwt
|
5
willakira 2017-03-31 12:58:18 +08:00 1
第一个问题的话,着重解决的应该是部署流程。代码发布的时候应该尽可能自动化。最好新的接口使用灰度发布,例如 AB test
安全问题的话 token ,然后 HTTPS 尽可能保证没有中间人 |
6
armoni 2017-03-31 13:17:24 +08:00
前后端分离又不需要跨域
|
7
hantsy 2017-03-31 13:26:49 +08:00
后端 Java REST API (安全用简单 JWT Token , 或者单独的 OAuth 2+ JWT 服务)
前端 Angular 等 SPA 就行了 参考 https://github.com/hantsy/angularjs-springmvc-sample-boot 如果嫌运行麻烦就用 Docker , Vagrant 在本机运行, 生产环境也可以 CI/CD 服务器实现 Docker 部署。 |
8
hantsy 2017-03-31 13:30:54 +08:00 1
后端 Java EE 7, JAXRS, JWT: https://github.com/hantsy/angularjs-ee7-sample
前端 AngularJS 1.x : https://github.com/hantsy/angular-es6-sample Angular 2: https://github.com/hantsy/angular2-sample |
9
MrLin 2017-03-31 13:38:28 +08:00
jwt+1
|
10
banksiae 2017-03-31 15:23:03 +08:00
jenkins 试试看呢
|
11
Ouyangan 2017-04-05 21:45:49 +08:00
1. 第一个问题属于部署问题 . 上 Jenkins, 自动发布 /手动发布随你, 花半天时间看下中文教程即可 , 非常简单 .
2.第二个属于认证,权限问题. 这个其实是不分什么前后端分离的, 你要简简单单的话自己定义注解,用 aop 实现即可, 框架的话现在比较通用的是采用 Shiro ,提供一整套完善的认证权限方案 , 可能需要几天的时间来上手. |