如何使用MySQL和PHP存储和检查自定义访问令牌?

如何使用MySQL和PHP存储和检查自定义访问令牌?,php,mysql,access-token,database-performance,Php,Mysql,Access Token,Database Performance,工具:PHP和MySQL 目标:从MySQL快速选择给定的访问令牌。 访问令牌:我生成的一个长字符串,用作该用户会话的一部分。(在这个问题中,生成方法是不相关的)(我在这里没有指定“字符串的长度”,因为它可能会改变答案。但是,我希望我可以使用最多128个字符的长度作为例子 问题:使用一个长varchar作为主键是一个不错的主意。在执行任何其他操作之前查询这样的访问令牌?或者,我是否也应该公开一些整数id,以便在访问令牌比较/检查之前查询 总而言之:您是否会直接使用varchar主键来检查冗长的访

工具:PHP和MySQL

目标:从MySQL快速选择给定的访问令牌。 访问令牌:我生成的一个长字符串,用作该用户会话的一部分。(在这个问题中,生成方法是不相关的)(我在这里没有指定“字符串的长度”,因为它可能会改变答案。但是,我希望我可以使用最多128个字符的长度作为例子

问题:使用一个长varchar作为主键是一个不错的主意。在执行任何其他操作之前查询这样的访问令牌?或者,我是否也应该公开一些整数id,以便在访问令牌比较/检查之前查询


总而言之:您是否会直接使用varchar主键来检查冗长的访问令牌?

为了获得良好的性能,您只需要对列进行索引。是否进一步将其作为您的主键是这场辩论的一个体现,其答案取决于您问题中未涉及的因素。@eggyal would将自动递增字段添加到access_令牌表中并与令牌本身一起使用是安全的吗?例如,用户将获得
“令牌id=4,令牌str=a45fe………”
因此,当比较它时,
从access\u token的\u db中选择token\u str\u,其中id=4
并将\u db中的token\u str\u与传入的token\u str进行比较。我能想到的唯一问题是暴露生成的access\u token的数量。这是一个安全缺陷吗?你怎么看?@frankish-在需要之前不要使你的模式复杂化。你可以尚未提出可行的“需求”。