被要求前端项目需要接入风控sdk
<script src="//xxxxxxxx.com/risk-control/static/risk.js" crossorigin="anonymous" ></script>
为什么接入到了server端?
1、前端项目 a,b,c 服务端server
SSR 模板由服务端控制: server 是一个 Egg.js 服务端应用,通过 nunjucks 模板引擎渲染 HTML。layout.html 是所有页面的基础模板。服务端在渲染时就已经把 RiskControl 的 script 标签注入到 HTML 中了。
2、 风控 SDK 需要尽早加载: RiskControl 是风控 SDK,它的职责是采集浏览器环境信息(设备指纹、行为特征等)用于风险识别。把它放在 head 中、在所有业务 JS 之前加载,可以确保:
- 在用户任何操作之前就开始采集
- 在页面跳转/请求发起时就能携带风控签名
- 采集数据更完整,不容易被业务代码干扰
总结:server 用 SSR 模板的核心原因是:认证在服务端做,用户信息在服务端注入,风控在模板层最早加载——这些事情必须在浏览器执行业务 JS 之前就完成,所以不能交给前端。