Files
notes/work/移动杭研/业务梳理/登录相关/IBS 前后端交互 X-CSRF-TOKEN 逻辑.md
T
2026-03-01 01:43:46 +08:00

40 lines
1.0 KiB
Markdown

```
<meta name="_csrf" content="ee4476e9-8a3c-4c72-b263-fe5d8f3ad18c">
<meta name="_csrf_header" content="X-CSRF-TOKEN">
```
```js
if (process.env.NODE_ENV == 'production') {
headers['X-Requested-With'] = 'XMLHttpRequest';
const _csrf_header = Dom.dom(Dom.query("meta[name='_csrf_header']")).attr('content');
const token = Dom.dom(Dom.query("meta[name='_csrf']")).attr('content');
if (_csrf_header && token) {
headers[_csrf_header] = token;
}
} else {
headers['X-CSRF-TOKEN'] = await XTOKEN();
}
```
```
x-csrf-token:ee4476e9-8a3c-4c72-b263-fe5d8f3ad18c
```
production 是生产。
下边是开发环境,会走 `/admin/getCurrentUser` 实际是后端的 `/getCurrentUser`
后台会
```java
CsrfToken csrfToken = (CsrfToken) request.getSession().getAttribute(IBSCsrfTokenRepository.class.getName().concat(".CSRF_TOKEN"));
if (csrfToken != null) {
userVO.setCsrfToken(csrfToken.getToken());
}
```
```
c23b84266a894c68b336073c7a185edd
acc94df0fbbc482ca535edb1e52e5b09
```