Feign 调用与令牌传递

Feign 调用与令牌传递

PIGCLOUD

📄 Feign 调用与令牌传递👍 _ PIGCLOUD

](https://www.pig4cloud.com/)

产品

商业版

生态🔥

📄 Feign 调用与令牌传递👍

pigcloud 2023/6/1

本章内容对应视频教程 📺 25.feign 调用使用说明

# 一、携带 Token 的服务调用

重要提示,别乱加 inner 注解,别偷懒

使用 token 调用时,无需添加 @Inner、FROM_IN 或 @NoToken 等注解!

  1. 客户端携带 token 访问服务 A
  2. 服务 A 通过 FeignClient 调用服务 B 获取数据
  3. Token 会在整个调用链路中自动传递(A→B→C→D)
  4. 用户需要拥有调用链路上所有接口的访问权限

Token 调用示意图

# 二、无 Token 的服务调用

在以下场景中,通常无法携带用户 token:

  • 异步任务调用
  • 定时任务调用
  • 消息队列(MQ)调用
  • 未登录状态的接口调用

无 Token 调用示意图

# 实现方式

# 1. 调用方配置

在 FeignClient 接口中,需要通过以下方式之一声明无 token 调用:

方式一:使用 FROM_IN 参数(通用方式)

1
2
3
4
5
6
R<Boolean> saveLog(@RequestHeader(SecurityConstants.FROM) String from);




Copied!

方式二:使用 @NoToken 注解(v5.6+ 版本支持)

# 2. 服务提供方配置

使用 @Inner 注解标记接口,实现内部调用控制:

1
2
3
4
5
6
7
8
9
10
@Inner
@PostMapping
public R save(@Valid @RequestBody SysLog sysLog) {
return new R<>(sysLogService.save(sysLog));
}




Copied!

@Inner 注解确保接口只能被内部服务调用,防止接口被外部直接访问,提升系统安全性。

📄 feign 使用基础 📄 @Inner 注解使用及原理 👍

  • 标题: Feign 调用与令牌传递
  • 作者: PIGCLOUD
  • 创建于 : 2024-01-01 00:00:00
  • 更新于 : 2025-09-22 14:27:28
  • 链接: https://anime-blog.52lin.site/📄 Feign 调用与令牌传递👍 _ PIGCLOUD/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。