情況如下:我的應用程序的用戶將僅使用他們的電話號碼創建他們的帳戶(例如WhatsApp)。所以沒有用戶名,密碼或類似的東西。我將在驗證後將這些電話號碼存儲在我的數據庫中,因此我知道所有存儲的號碼都將採用特定的格式。需要幫助創建一個動態電話號碼檢測器?
然而,棘手的部分是我希望我的應用程序通過我的用戶的聯繫人來查看他們的聯繫人是否在我的應用程序的服務器上有一個帳戶。理論上,我只是希望應用程序檢查電話號碼,看看它是否存在於我的數據庫中,因爲我很確定電話號碼是我的應用程序可以訪問的聯繫人的唯一(唯一)屬性(請更正我如果我錯了)。
我害怕的事情是每個智能手機擁有者都以自己的方式存儲聯繫人的電話號碼。我的意思是,例如,一個人可能會以「乾淨的方式」存儲聯繫人的電話號碼,國家代碼和地區代碼以及其他應該在電話號碼中的所有內容,例如:+1 xxx xxx xxxx(我來自荷蘭,我只是在猜測,所以如果這不是美國的電話號碼,我向所有美國讀者道歉)。其他人可能會以「快捷方式」存儲他的聯繫人的電話號碼,沒有任何國家代碼或區號,如下所示:xxx xxx xxxx(無國家代碼)或xxx xxxx(無區號)。
這在一個國家(例如美國)已經是個問題,更不用說某人在他的電話中有其他國家的聯繫人(帶有他們自己的區號規則)的情況。聯繫人列表中的聯繫人仍可能使用我的應用和他們的電話號碼,但如果該人以「快捷方式」存儲了他的聯繫人電話號碼,我的應用將無法在數據庫中找到它。現在,我要麼尋找聯繫人的替代唯一值,我也可以將其存儲在我的數據庫中,以便將其用作標識符(我高度懷疑存在,儘管如此),或者最好是一種使應用程序搜索的方法即使存儲在聯繫人列表中的號碼與存儲在我的數據庫中的電話號碼不一致,它也會識別出匹配的電話號碼。
與其說是一些技術性的建議,我寧願聽到某個知道世界各地電話號碼的人的消息。例如:僅僅搜索聯繫人電話號碼的最後8位數字是否明智,或者在世界其他地方可能存在重複的電話號碼方面會有風險?只是想知道最安全的方法是什麼...
順便說一下:我正在建設的應用程序是用Swift 3編寫的,我將通過Apple的聯繫人框架訪問用戶的聯繫人。
請告訴我你的警告您的用戶在這樣做之前是否抽取了他們的朋友/家人/同事的聯繫信息? – ceejayoz
@ceejayoz我不會虹吸任何東西或任何人。訪問聯繫人號碼的唯一方法是使用蘋果自己的權限提示,將其與存儲的數據進行比較。它不會對數字做任何其他處理,所以這意味着它不會將其存儲或傳遞給其他人。簡而言之,沒有任何人(包括我自己)能夠訪問用戶的聯繫信息。當然,我會讓用戶選擇他們的聯繫人是否可以看到用戶是否在使用我的應用,但除此之外,我什麼也不做與世界上任何其他與邀請兼容的社交應用。 –
@ceejayoz或者你是否告訴我你必須授予WhatsApp權限才能讓你的任何聯繫人在你創建該應用的配置文件的那一刻給你發送WhatsApp消息?如果你這樣做,你可能已經下載了錯誤的應用程序。 –