首先是前后端分离, 有一个 restful api 直接处理前端数据, 再有一个 http api 处理一些特殊问题, 还有一个 web socket 进行实时通信。 (不同后端由不同组完成,技术栈也不一样,也会单独部署)
所有 api ,ws 都需要先验证请求合法(用户验证)。
请教一下大家会采用哪种构架?
1
jucelin 2023-12-15 08:21:19 +08:00
你调用你自己的接口,此接口验证用户信息,再由它向第三方 API 发起 GET/POST 请求
也可以尝试 JWT 类似的认证方式 |
2
bilibiliQQ 2023-12-15 08:35:31 +08:00
小型软件不用过多考虑,先跑起来上线再说,
|
3
jojo0830 2023-12-15 08:37:37 +08:00
strapi ?
|
4
frankies 2023-12-15 08:40:59 +08:00 via Android
小软件活跃用户没上亿,没必要想这么多
|
5
812603834 2023-12-15 09:02:16 +08:00
在设计上可以先采用第一种,但是能支持后续迭代成第二种
1 、在请求量小的时候,可以直接先把请求打到 ng 上,然后 ng 再转发到各自的应用,应用里面去做验证,条件允许的话在 ng 的前面再挡一个 waf 2 、公共验证应用是必要的,并且要做的够好,后面接入网关时,也可以网关直接调用公共验证的接口 |
6
stefanieewu 2023-12-15 09:27:58 +08:00
我们现在是第二种,客户端请求统一先到 gateway 做验证,验证通过后再通过路径匹配转发到对应的微服务/模块
验证失败统一跳转到一个的登录页面 好处是,其他业务模块不需要重复处理用户验证,如果是不需要鉴权的,通过白名单配置进行放行请求 坏处是,需要点时间开发,以及和其他业务联调 |
7
zhuoyue100 2023-12-15 09:49:09 +08:00
前端部署一个静态网站,通过 nginx 转发到不同的后端,认证这块搞一个公共服务,不同后端自己去请求校验。nginx 配置 wss 转发就多 2 个请求头
|
8
flmn 2023-12-15 11:08:29 +08:00
API Gateway
|