我正在共享服务器上设置 OAuth 支持。我要安装的服务器端 PHP OAuth 库是这个:
http://code.google.com/p/oauth-php/downloads/list
我正在关注此处的安装说明:
http://code.google.com/p/oauth-php/wiki/ConsumerHowTo
在注释中有使用安装包中的 SQL 脚本为您设置表和数据库的提示。当我尝试通过 phpMyAdmin 中的导入 (SQL) 功能执行脚本时,我在其中一张表上收到“密钥太长”错误。换句话说,我遇到了使用 MySQL/InnoDB 表时发现的最大键长度限制。
为了解决这个问题,我将所有“charset=utf8”实例替换为“charset=latin1”,因为 utf8 每个字符需要 3 个字节,而 latin1 每个字符需要 1 个字节。该脚本执行良好,所有表均已正确创建。
据我所知,表中使用的所有字段都不需要支持多字节国际字符。我看到问题发展的唯一方法是,如果我访问的 OAuth 连接服务之一在其消费者密钥或秘密中使用国际字符,到目前为止我还没有遇到过这种情况。
谁能告诉我这种解决方法是否会在任何时候以及在哪里咬我?此外,如果有人在不牺牲使用 utf8 字符集的情况下有更好的解决方案来解决“密钥太长”问题,我想知道它。