Skip to content
Database

pgjwt:JSON 网页令牌

pgjwt(Postgres JSON Web Token)扩展允许你在 Postgres 数据库中创建和解析 JSON Web Tokens (JWTs)。JWT 通常用于 Web 应用和服务中的身份验证和授权。

🌐 The pgjwt (Postgres JSON Web Token) extension allows you to create and parse JSON Web Tokens (JWTs) within a Postgres database. JWTs are commonly used for authentication and authorization in web applications and services.

启用扩展 #

🌐 Enable the extension

  1. 在仪表板中转到数据库页面。
  2. 点击侧边栏的 扩展
  3. 搜索 pgjwt 并启用这个扩展。

应用接口 #

🌐 API

在哪里:

🌐 Where:

  • payload 是一个以字符串表示的加密 JWT。
  • secret 是用于签署 JWT 并验证其完整性的私有/秘密通行码。
  • algorithm 是用来使用密钥对 JWT 进行签名的方法。
  • token 是一个以字符串表示的加密 JWT。

用法 #

🌐 Usage

一旦安装了这个扩展,你就可以使用它的功能来创建和解析 JWT。下面是一个使用 sign 函数创建 JWT 的示例:

🌐 Once the extension is installed, you can use its functions to create and parse JWTs. Here's an example of how you can use the sign function to create a JWT:

1
select
2
extensions.sign(
3
payload := '{"sub":"1234567890","name":"John Doe","iat":1516239022}',
4
secret := 'secret',
5
algorithm := 'HS256'
6
);

pgjwt_encode 函数返回一个表示 JWT 的字符串,然后可以在各方之间安全传输。

🌐 The pgjwt_encode function returns a string that represents the JWT, which can then be safely transmitted between parties.

1
sign
2
---------------------------------
3
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX
4
VCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiw
5
ibmFtZSI6IkpvaG4gRG9lIiwiaWF0Ijo
6
xNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y9
7
22BhjWgQzWXcXNrz0ogtVhfEd2o
8
(1 row)

要解析 JWT 并提取其声明,你可以使用 verify 函数。下面是一个例子:

🌐 To parse a JWT and extract its claims, you can use the verify function. Here's an example:

1
select
2
extensions.verify(
3
token := 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiRm9vIn0.Q8hKjuadCEhnCPuqIj9bfLhTh_9QSxshTRsA5Aq4IuM',
4
secret := 'secret',
5
algorithm := 'HS256'
6
);

它返回解码后的内容以及一些相关的元数据。

🌐 Which returns the decoded contents and some associated metadata.

1
header | payload | valid
2
-----------------------------+----------------+-------
3
{"alg":"HS256","typ":"JWT"} | {"name":"Foo"} | t
4
(1 row)

资源 #

🌐 Resources