2014-09-17 26 views
6

Tôi cần có cách xác định người dùng ứng dụng của mình nhưng không có hệ thống đăng nhập.Cách xác định người dùng duy nhất mà không cần sử dụng hệ thống đăng nhập (iOS)

Tôi đã xem UUID mang lại cho tôi một phần câu trả lời cho vấn đề của mình, nhưng không phải là "UDID thực", nếu người dùng cài đặt lại ứng dụng, anh ta nhận được UUID mới, và điều này không thể làm việc cho tôi.

Có cách nào để tôi có thể nhận được số sê-ri của thiết bị hoặc thứ gì đó độc đáo như vậy không? Bất kỳ thứ gì mà tôi có thể lấy từ thiết bị mà không cần người dùng điền vào bất kỳ trường nào.

+0

Nếu người dùng cài đặt lại ứng dụng, họ sẽ nhận được UUID mới, nhưng nó là UNIQUE ngay cả khi nó bị thay đổi. Vì vậy, bạn có thể dựa vào nó. – Malloc

+0

Vâng, nhưng tôi không thể biết nếu đó là cùng một người dùng hay không; tôi biết nó chưa bao giờ được chỉ định và sẽ không bao giờ trở lại nữa, nhưng tôi không thể biết anh ta vẫn là John Doe của tôi hay không –

+0

Bạn đã thử [identifierForVendor] (https://developer.apple.com/library/ios/documentation/ uikit/reference/UIDevice_Class/Tham khảo/UIDevice.html # // apple_ref/occ/instp/UIDevice/identifierForVendor) hoặc [advertisingIdentifier] (https://developer.apple.com/Library/ios/documentation/AdSupport/Reference/ASIdentifierManager_Ref /ASIdentifierManager.html#//apple_ref/occ/instp/ASIdentifierManager/advertisingIdentifier)? – jMelnik

Trả lời

1

Sau một thời gian, chúng tôi quyết định rằng không đáng tin cậy, không thể hoặc thực sự gây phiền nhiễu để nhận được ID người dùng duy nhất mà không yêu cầu họ điền vào một số loại trường và thực sự đăng ký.

Do đó chúng tôi quyết định sử dụng số điện thoại định dạng mã hóa bằng cách sử dụng quy trình sau:

  • Yêu cầu số điện thoại & mã * quốc tế (1, 32, vv)
  • Xác nhận tính toàn vẹn của điện thoại số programatically
  • Nếu đạt yêu cầu, hỏi người sử dụng để xác minh với cảnh báo
  • Nếu okay, gửi mã pin và chờ xác nhận
  • Nếu hợp lệ, đăng ký để dữ liệu căn cứ.

Tên người dùng là: số điện thoại được định dạng (+32495555556 chẳng hạn) và chuỗi đó sau đó được băm trong SHA-256 và cuối cùng chúng tôi lưu chuỗi siêu dài đó vào cơ sở dữ liệu và nhận ra mọi người như vậy.

Nếu bạn có bất kỳ câu hỏi nào, vui lòng hỏi tại đây để tôi có thể làm rõ một số. Nếu bạn có một ý tưởng tốt hơn tôi vẫn sẽ vui mừng khi nghe nó.

+0

SHA-256 không mã hóa. – zaph

+0

bạn nói đúng, nó băm. lỗi của tôi –

4

Bạn có thể thử sử dụng một số chuỗi ngẫu nhiên duy nhất được lưu trữ trong Bộ nhớ khóa-giá trị trong iCloud của người dùng.

Vì vậy, khi người dùng khởi chạy ứng dụng của bạn lần đầu tiên bạn thấy cửa hàng iCloud của mình không có giá trị để bạn tạo và lưu trữ nó. Và khi người dùng sẽ khởi chạy ứng dụng lần sau bạn sẽ thấy giá trị này và sẽ hành động tương ứng.

Điều quan trọng hơn ngay cả khi người dùng sẽ cài đặt lại ứng dụng của bạn hoặc sẽ khôi phục cài đặt gốc cho thiết bị mà bạn vẫn có thể xác định người dùng theo giá trị trong iCloud của mình.

+0

có thể một số mã hoặc liên kết để đưa ra ý tưởng về điều này? – Esqarrouth

+0

Tôi sẽ cố gắng tìm ví dụ từ một trong những dự án cũ ... sẽ đăng ngay khi tìm thấy – Vanger

+1

Rất tiếc, chỉ cần kiểm tra và tôi không thể chia sẻ mã từ dự án cũ của mình. Nhưng tôi nhớ rằng thư viện thực hiện chính xác những thứ cần thiết: https://github.com/fabiocaccamo/FCUUID Hãy nhìn vào nó. – Vanger

Các vấn đề liên quan