webflux的mvc中添加cookie,和spring mvc 不太一样,需要再controller中的方法中加入ServerWebExchange exchange 参数,如下:
@RequestMapping("admin/login")
public CommonResult<AdminLoginResponseData> login(@RequestBody AdminLoginForm adminLoginForm, @ApiIgnore ServerWebExchange exchange) {
CommonResult<AdminLoginResponseData> result = CommonResult.getInstance();
if (checkAuth(adminLoginForm)) {
ResponseCookie responseCookie = ResponseCookie.from("token", loginRecord.getToken()).build();
exchange.getResponse().addCookie(responseCookie);
AdminLoginResponseData responseData = AdminLoginResponseData.ofAdmin();
result.setData(responseData);
}
return result;
}
其中的关键代码
ResponseCookie responseCookie = ResponseCookie.from("token", loginRecord.getToken()).build();
exchange.getResponse().addCookie(responseCookie);