SORU
12 Temmuz 2011, Salı


Birden fazla kullanıcı birleştirilmesi için mimari hesapları birlikte

Tamam, kendinizi kayıt ve giriş yapabileceğiniz bir web sitesi var. Ayrıca facebook, twitter veya linkedın hesabı ile giriş yapabilirsiniz.

Kullanıcılar tek bir hesap kayıtlı olması önemlidir. Yani bir şekilde, eğer farklı yöntemler giriş için kullandıkları kullanıcı hesaplarını birleştirmek istiyorum. Bunu çözmek için en iyi çözüm nedir?

Örneğin, kullanıcının Facebook hesabı ile oturum. Veri onun için bir hesap otomatik olarak kaydetmek için kullanıyorum. Web sitemizin kullanıcı adı ve bir şifre ile bir e-posta gönderdi gerekir? Eğer bu Facebook politikası ile Tamam ise). Bir kullanıcı adı ve şifreyi giriniz olabilir onlar İkinci bir ekran daha vermeli miyim? Ama bu Facebook hesabı ile giriş arkasındaki fikir değil. Prosedürü katılmak için kolaylaştırmak gerekir.

Kullanıcı bizim web sitesi ve twitter hesabı ile oturum açtığınızda kendini kayıtlı da olabilir. Nasıl biri olarak bu 2 hesapları birleştirebilir miyim? En iyi yolu nedir?

Temelde benim soru şu: bir kullanıcı web sitemize üye 4 farklı yolu var. Nasıl eğer bir kullanıcı birden çok yolu kullanmaya karar verirse bu 4 yolu sadece bir hesap oluşturmak emin olabilirim? Kullanıcı kendisi için bir güçlük haline gelmez emin olmak için en iyi akış nedir?


Düzenleme:

Bu soruyu sordum sonra, bir yazı dizisi cevabı kendim veriyorum 3 yıl): http://www.sitepoint.com/series/using-social-networks-as-a-login-system/

CEVAP
2 AĞUSTOS 2011, Salı


Şu anda aynı görev ile karşı karşıyayım. Çözdüm tasarımı oldukça basittir, ama iyi çalışıyor.

Ana fikir yerel bir site kimlik ve üçüncü taraf site isimlerini modelleri tecrit olduğunu, ancak daha sonra bağlantısı vardır. Sitede oturum açan her kullanıcı üçüncü taraf site kimliklerin herhangi bir sayıya eşleyen yerel bir kimliği vardır.

Yerel kimlik kayıt bilgileri en az - tek bir alan bile olabilir - birincil anahtar sadece içerir. (Benim uygulama, umurumda kullanıcının e-posta, adı, doğum tarihi, sadece tanımak istiyorum kişi kim olmuştur günlüğü bu hesap baştan beri.)

Üçüncü taraf kimlik bilgileri üçüncü taraf kimlik doğrulaması ile ilgili sadece içerir. OAuth için, bu genellikle bir kullanıcı kimliği (ıd, e-posta veya kullanıcı adı gibi) ve hizmet tanımlayıcı (ile doğrulandı ne gösteren) anlamına gelir. Veritabanı dışında uygulamanın diğer kısımlarında, bu hizmeti tanımlayıcı hizmet ilgili kullanıcı tanımlayıcısı almak için bir yöntem ile eşleştirilmiş, ve Kimlik Doğrulaması yapılır. İçin Openıd, istihdam aynı yaklaşım, başka bir yöntem için kimlik doğrulaması daha yaygın (çünkü biz hemen hemen her zaman aynı protokol dışında kullandığımız farklı kimlik, URL, ve o bizim hizmet tanımlayıcı).

Son olarak, üçüncü taraf kimlikler ne yerel kimlik için eşleştirilmiş bir kayıt tutarım. Bu kayıtları oluşturmak için, akış bu gibi görünüyor:

  • Bir kullanıcı ilk kez üçüncü parti kimliğini kullanarak oturum. Yerel kimlik kaydı oluşturulur, daha sonra üçüncü taraf kimlik kaydı, sonra eşleştirilmiş.
  • Kontrol paneli, kullanıcı üçüncü taraf hizmetler giriş yaparak bir hesap bağlamak için fırsat sunulmaktadır. (Bunun nasıl çalıştığını basit. güzel)
  • Kullanıcı farkında olmadan birden fazla hesap yaptığı bu senaryoda, çözüm oldukça basit. Kullanıcı hesapları bir oturum sırasında, o siteyi daha önce (kontrol paneli özelliği yukarıda) oturum açmak için kullanılan bir girdi kaydeder. Web servis algılar bu çarpışma (yerel kimlik, oturum açan kullanıcı farklıdır yerel kimlik için bağlantılı üçüncü taraf kimlik sadece giriş) ve kullanıcı istendiğinde bir hesap birleştirme.

Birleştirme hesapları bir maddenin birleştirilmesi her alanın yerel kimlik (değişir uygulama için uygulama ve kolay olur eğer sadece birkaç alanları içinde yerel kimlik kayıtları) ve sonra sağlanması bağlantılı üçüncü taraf kimlik bağlantılı bir sonuç yerel kimlik.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • glowpinkstah

    glowpinkstah

    16 Mayıs 2006
  • MyTiredBones

    MyTiredBones

    2 Temmuz 2013
  • theKGB65

    theKGB65

    24 Aralık 2007