Supabase的API Key
跟大多数公网服务一样,Supabase通过API Key来约束客户端对REST API的访问。有所不同的是,大多数公网服务的API Key都是需要用户保密的,一旦泄露,会导致恶意用户直接操作所使用的服务接口,典型的例子如:ChatGPT。因此一般公网服务的API key只能在服务端使用。
Supabase的服务形式有所不同,他允许开发者直接在web或app客户端调用接口,大家都知道,API key配置在客户端上是没有保密性的,尤其JavaScript明文直接就可以被任何人看到,因此Supabase内置了两个API Key,以应对该问题:
-
Anon Key
这个API Key是可以在Web和移动应用客户端使用的key,不需要担心key泄露。顾名思义,这个key默认对应的是一个anon(匿名)用户,匿名用户具有最低的数据访问权,通常不能访问任何数据,因此不必担心key泄露后的安全问题。那么问题来了,一个最低权限的API key如何给开发者使用来开发应用呢?我会在下文介绍其工作原理。
-
Service Role Key
这个Key具有最高的API访问权限,用户使用该Key可以进行任意操作,因此只能配置到服务端使用,不能泄露。所以Service Role Key扮演的是大家常见的API Key的角色。
简单来说,Supabase提供了2个Key,如果是Web或者移动应用,直接在客户端调用Supabase接口的话,必须使用Anon key。服务端程序则可以根据场景需要来决定使用Anon key还是Service Role Key。具体使用方法我们在