meilisearch-go 租户 Token 教程:如何用 JWT 实现多租户搜索权限隔离
meilisearch-go 租户 Token 教程如何用 JWT 实现多租户搜索权限隔离【免费下载链接】meilisearch-goGolang wrapper for the Meilisearch API项目地址: https://gitcode.com/gh_mirrors/me/meilisearch-gomeilisearch-go 是 Meilisearch 官方的 Go 语言客户端而**租户 TokenTenant Token**正是它在多租户场景下提供的搜索权限隔离利器。本教程将带你从零掌握如何用 JWT 生成租户 Token让不同用户只能搜索到自己有权访问的数据——无需为每个租户单独建索引一套搜索后端轻松搞定权限控制。为什么需要多租户搜索权限隔离想象一个 SaaS 应用多租户共享一套数据比如电商平台里不同商家共用商品索引、文档系统里不同团队共用文档索引。如果所有用户都能搜到全部数据隐私就彻底失控了。传统方案要么为每个租户建独立索引索引爆炸、维护成本高要么每次搜索都手动拼接过滤条件容易漏写、权限难收敛。而Meilisearch 租户 Token把权限规则直接签进令牌里服务端自动执行过滤从根上解决这两个痛点。租户 Token 的核心原理JWT 签名 Meilisearch 的租户 Token 本质是一个JWTJSON Web Token由 SDK 用 API Key 作为密钥、以 HS256 算法签名生成。它包含两个关键字段字段作用apiKeyUid父级 API Key 的 UID标识令牌的权限来源searchRules搜索规则定义可访问的索引与过滤条件当客户端拿着租户 Token 发起搜索时Meilisearch 会校验签名 叠加 searchRules 过滤天然实现搜索权限隔离。在 meilisearch-go 中这一切封装在GenerateTenantToken一个方法里对应接口定义见 meilisearch_interface.go。准备工作搭建环境 ⚙️动手前先准备好两样东西安装依赖Go 1.21go get github.com/meilisearch/meilisearch-go想阅读源码或跑集成测试可以 clone 仓库到本地git clone https://gitcode.com/gh_mirrors/me/meilisearch-go准备 API Key通过客户端创建一个带search权限的 Key拿到它的UID和Key值Key 的 UID 是生成租户 Token 的必填参数格式要求为 UUID v4。创建 Key 的方法见 meilisearch.go。初始化客户端的标准写法client : meilisearch.New(http://localhost:7700, meilisearch.WithAPIKey(你的APIKey))快速上手三步生成租户 Token GenerateTenantToken接收三个参数apiKeyUIDAPI Key 的 UID、searchRules搜索规则、options可选配置。完整实现见 meilisearch.go。第一步编写 searchRulessearchRules : map[string]interface{}{ products: map[string]string{ filter: tenant_id 42, // 只允许搜索当前租户的数据 }, }第二步生成令牌apiKeyUID : 父级APIKey的UID token, err : client.GenerateTenantToken(apiKeyUID, searchRules, nil) if err ! nil { log.Fatal(err) } fmt.Println(token) // 一段 JWT 字符串第三步把令牌交给前端/客户端由它代替 API Key 发起搜索。前端拿到的永远只是受限的租户 Token主 Key 绝不泄露。searchRules 的两种玩法全局规则与索引级过滤 searchRules 非常灵活对应两种典型用法玩法一所有索引统一规则用*通配searchRules : map[string]interface{}{ *: map[string]string{ filter: tenant_id 42, }, }玩法二按索引精细化控制不同索引不同策略searchRules : map[string]interface{}{ products: map[string]string{ filter: tenant_id 42, }, reviews: map[string]string{ filter: owner_id 7, }, }对应测试用例可在 meilisearch_test.go 中查看覆盖了多索引过滤、单索引过滤等多种场景。进阶配置过期时间与指定签名密钥 ⏰GenerateTenantToken的第三个参数是*TenantTokenOptions结构定义见 types.go支持两个字段APIKey自定义签名密钥。不填则默认使用初始化客户端时的 API KeyExpiresAt令牌过期时间注意使用 UTC 时间到期后令牌自动失效。options : meilisearch.TenantTokenOptions{ APIKey: 用于签名的APIKey, ExpiresAt: time.Now().Add(24 * time.Hour).UTC(), } token, err : client.GenerateTenantToken(apiKeyUID, searchRules, options)给租户 Token 设置过期时间能让权限隔离更进一步——即使令牌泄露也会自动失效。常见报错与避坑指南 ️GenerateTenantToken内置了严格校验以下是高频报错原因对照表校验逻辑见 meilisearch.go报错场景原因与解决searchRules 为 nil搜索规则不能为空至少给一个空对象{}提示缺少 API Key既没在 options 里传APIKey客户端初始化时也没配 KeyapiKeyUid 格式错误必须是合法的 UUID v4 格式校验函数见 helper.goexpiresAt 过期过期时间必须晚于当前时间实战收尾用租户 Token 发起搜索 ✅生成令牌后用WithAPIKey传入令牌即可搜索示例见 examples/search/main.gosearchClient : meilisearch.New( http://localhost:7700, meilisearch.WithAPIKey(token), // 传入租户 Token ) result, err : searchClient.Index(products).Search(手机, meilisearch.SearchRequest{})Meilisearch 会自动在products索引上叠加tenant_id 42过滤返回结果天然只属于该租户权限隔离即刻生效。小结 通过 meilisearch-go 的GenerateTenantToken只需几行代码就能基于 JWT 实现强大的多租户搜索权限隔离一套索引、一套后端却能按租户精准投放搜索结果。配合过期时间与索引级过滤规则足以应对绝大多数 SaaS 权限场景。现在就动手试试让你的搜索服务安全又优雅【免费下载链接】meilisearch-goGolang wrapper for the Meilisearch API项目地址: https://gitcode.com/gh_mirrors/me/meilisearch-go创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

自然语言工作流编译:构建可靠AI Agent的工程化实践

自然语言工作流编译:构建可靠AI Agent的工程化实践

1. 项目概述:当自然语言指令遇上复杂工作流最近在折腾AI Agent的开发,一个绕不开的痛点就是:如何让一个只会“说人话”的大语言模型(LLM),去精准、可靠地执行一个包含多个步骤、有条件分支、甚至需要调用外…

2026/8/23 22:48:57 阅读更多 →
代码题解生成与模型验证,工具选型别只比较参数

代码题解生成与模型验证,工具选型别只比较参数

代码题解生成与模型验证,工具选型别只比较参数 框架的模型数量、Star 数和组件清单,不能直接说明它适合生产服务。题解生成系统更该关注:能否限制工具权限、是否支持取消和重试、结构化输出是否稳定、发生故障时如何排查,以及团队…

2026/8/23 22:42:41 阅读更多 →
MagicEdit 上手全指南:如何用一句话完成时间连贯的视频编辑

MagicEdit 上手全指南:如何用一句话完成时间连贯的视频编辑

MagicEdit 上手全指南:如何用一句话完成时间连贯的视频编辑 【免费下载链接】magic-edit MagicEdit: High-Fidelity Temporally Coherent Video Editing 项目地址: https://gitcode.com/gh_mirrors/ma/magic-edit 你有没有过这样的经历:辛苦剪好的…

2026/8/23 22:47:54 阅读更多 →

最新新闻

论文AI率过高怎么办?2026年12款免费降AI率工具实测指南

论文AI率过高怎么办?2026年12款免费降AI率工具实测指南

现在毕业论文答辩前,“AI率超标”已经彻底取代“查重率过高”,成了同学们的头号难题!不少同学只是用AI润色了摘要和结论,AI率直接飙升到离谱,纯手动修改根本不管用——这说明AIGC检测系统抓的不是个别词语,…

2026/8/23 23:59:54 阅读更多 →
Marketch:从Sketch画板直接量取CSS

Marketch:从Sketch画板直接量取CSS

Marketch:从Sketch画板直接量取CSS 【免费下载链接】marketch Marketch is a Sketch 3 plug-in for automatically generating html page that can measure and get CSS styles on it. 项目地址: https://gitcode.com/gh_mirrors/ma/marketch 设计稿交付还在…

2026/8/23 23:59:54 阅读更多 →
如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南 【免费下载链接】ThinkpadX390-Opencore-EFI macOS Catalina & Big Sur & Monterey on ThinkPad X390 (Hackintosh) 项目地址: https://gitcode.com/gh_mirrors/th/ThinkpadX390-Opencore-EFI …

2026/8/23 23:59:54 阅读更多 →
WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化 【免费下载链接】WechatHook Enjoy hooking wechat by Xposed....Accessibility...and so on... 项目地址: https://gitcode.com/gh_mirrors/we/WechatHook WechatHook 是一个基于 Xpos…

2026/8/23 23:59:54 阅读更多 →
OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan OpenModScan 是一款开源免…

2026/8/23 23:59:54 阅读更多 →
Gin-JWT认证与授权方案从Token到RBAC权限控制

Gin-JWT认证与授权方案从Token到RBAC权限控制

Gin-JWT认证与授权方案从Token到RBAC权限控制 文章导语 JWT(JSON Web Token)是现代Web服务的身份认证标准。在Gin框架中集成JWT看似简单,但涉及Token刷新、黑名单、多设备登录、RBAC权限控制等实际需求时,就需要更完善的设计。本文…

2026/8/23 23:57:54 阅读更多 →

日新闻

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/23 0:00:50 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/23 0:00:50 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →