在Swift上存储API密钥的位置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Swift上存储API密钥的位置?相关的知识,希望对你有一定的参考价值。

我有一堆API密钥和秘密(Stripe,Cloudinary等),目前在我的应用程序中进行了硬编码。存放它们的正确位置在哪里?它们应该在服务器中吗?我只是将服务器URL存储在我的最后(如果密钥更改,应用程序将继续工作)?

例如,我在我的app委托文件中有这个:

    func configureStripe(){
            STPPaymentConfiguration.sharedConfiguration().publishableKey = "pk_test_1234rtyhudjjfjjs"         

STPPaymentConfiguration.sharedConfiguration().appleMerchantIdentifier = "merchant.com.myapp"
    }
答案

没有最好的办法。这取决于很多事情。看看这个答案 - https://stackoverflow.com/a/14865695/1760199,并为您选择最方便的方式。

另一答案

在苹果平台上,欢迎您使用https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/01introduction/introduction.html

另一答案

在Stripe的情况下,Stripe的设计考虑到这一点并不重要,因此他们承担了PCI合规性的财务责任。他们有更复杂的方法来验证用户和限制访问。

另一答案

最佳做法是将字符串api url以纯文本形式放在某个类或控制器中,不放入信息。

我使用帮助类:

class ApiUrl
{
    static var api = "www.api.com/api/"
}

let api = ApiUrl.api

以上是关于在Swift上存储API密钥的位置?的主要内容,如果未能解决你的问题,请参考以下文章

我的谷歌地图 api 密钥在 python 中不起作用,尽管它可以在 swift 中运行

在反应应用程序中保存 api 密钥的真正位置/方式是啥?

谷歌地图在Android的标签片段上显示为灰色

如何从 iOS Swift Codable 中的 API 响应通知或打印模型类上缺少的密钥?

在 AWS Elastic Beanstalk 中存储外部 API 密钥

存储密钥库密码的位置?