我可以使用 #to_signed_global_id 获得稳定的签名 ID 吗?

Dor*_*ian -2 ruby-on-rails

目前我打电话:

Appointment.last.to_signed_global_id.to_s
# => BAh7CEkiCGdpZAY6Bk...27c1175e6e2
Appointment.last.to_signed_global_id.to_s
# => BAh7CEkiCGdpZAY6BkVU....0efc706151feed7178
Run Code Online (Sandbox Code Playgroud)

有没有办法始终返回相同的签名全局 id?

Dam*_* Aw 6

是的,您可以获得签名的全局 ID。它不稳定,因为默认情况下,Rails 中有 1 个月的过期时间。

为了使您的签名全局 ID 稳定,请将过期时间设置为 nil。

Appointment.last.to_signed_global_id(expires_in: nil).to_s
Run Code Online (Sandbox Code Playgroud)

现在,调用上述代码任意多次将始终生成相同的字符串结果,除非您更改签名密钥。