【问题标题】:How to generate token based on few fields如何根据少数字段生成令牌
【发布时间】:2015-07-09 10:52:59
【问题描述】:

我需要为用户生成一个令牌以取消其会员资格。现在我需要令牌表中的多个字段。

目前我正在使用 str_rand(26),但它可能会生成一个已经在数据库中的字符串,因为当用户单击取消链接时,我会根据令牌获取表条目,因此它不是一个好的模型.

我想要的是提供几个字段,并根据这些字段生成一个令牌,当我收到该令牌时,我可以取回这些 IDS 并访问该特定行。

For example generate_token(user_id + payment_id + registration_id)

或者,如果此类任务有比分享更好的解决方法。

【问题讨论】:

    标签: php laravel token


    【解决方案1】:

    我想要的是提供几个字段,并根据这些字段生成一个令牌,当我收到该令牌时,我可以取回这些 IDS 并访问该特定行。

    这不适用于令牌,因为它们要么是散列,要么是随机的。如果它是这三个 id 的散列,您可以从 id 计算散列,但几乎不可能(散列不可反向计算)从散列中获取 id。

    我会说为取消订阅过程生成一个令牌,然后使用该特定令牌删除数据记录是正确的方法。 生成两个相同(如果足够长,例如 32 个字符)标记的概率几乎可以忽略不计。要补充的是,令牌仅存在于用户要求取消订阅直到他确认操作的时间段内。

    例如 32 个字符的 GUID,例如 21EC2020-3AEA-4069-A2DD-08002B30309D,被认为是全局唯一的!

    【讨论】:

    • 您是否在涉及付款的系统中使用过这种方法。如果是,用户数据库有多大?
    • 不,我没有,但我确实在较大的项目上使用了 GUID,没有任何问题。我不明白您在涉及付款时有什么顾虑?
    • 不,我只是害怕客户提示系统出现问题。让我生成并检查它,我会接受你的答案。感谢您的帮助。
    猜你喜欢
    • 2013-03-31
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    相关资源
    最近更新 更多