我正在开发人员平台上,该平台需要在开发人员注册其应用程序以使用我们的平台时从FB,Dropbox等站点生成应用程序ID,常见步骤是开发人员指定应用程序显示名称,一些权限配置。新应用,然后它将生成唯一的应用ID和应用秘密。
我的问题是他们如何实现它,例如算法,机制,最佳实践等?任何帮助和细节将不胜感激!
应用ID通常是大数字或随机生成的字母数字字符序列。例如,Twitter使用22个字母数字字符的序列。应用程序ID不是秘密的,因为通常需要将它们放在客户端代码中以进行API调用。您可以使用自己选择的语言生成一个。例如,请参阅Python中的这种单行代码:
import random, string
app_id = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(20)) # 20 being the size of the App ID you're wanting
另一方面,秘密密钥是唯一的标识符或很长的字符串,无法猜测。他们不是公众,应该永远,永远,是向公众提供(在例如JavaScript代码)。这并不意味着您应该使用复杂的算法来生成它们。在这里完全可以接受UUID(或GUID,具体取决于您的调用方式),但是为了增强安全性,您可能希望将它们安全地存储在数据库中(例如,加密),以防万一它被坏人丢弃。同样,在Python中,一切都归结为以下两行:
import uuid
secret_key = uuid.uuid1()
秘密密钥用于服务器和开发人员代码之间的私密对话框中,因此您应将其用作证明您的开发人员知道他的秘密密钥和他的应用程序ID的证明。例如,Twitter要求所有API请求都必须使用开发人员的秘密密钥和临时质询进行签名。开发人员代码中计算出的HMAC-SHA1签名可以证明他既知道自己的密钥,又知道Twitter API发送的先前的秘密质询。
因此,复杂的部分不是生成App ID或密钥:它是在编写安全的代码以确保您正在与合适的开发人员交流:)要获得一些启发,请看一下(您似乎已经开始这样做)知名的API,例如Facebook,Twitter,LinkedIn或Google+,以了解“大公司”如何处理此类问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句