Sitem için OpenID kimlik doğrulaması kullanmaya çalışıyorum. İşte senaryo:
Ben kullanıcı (. Sadece Openid sağlayıcı ziyaret ederek doğrulatabilirsiniz e-posta şifre ile özel bir hesap oluşturmak için gerek kullanıcıyı),Gerekli OpenID bilgilerinin saklanması
- giriş sadece OpenID kullanarak edebilmek istiyorum
- E-posta/şifre ile (kullanıcı bir formu doldurarak sitede kayıtlı)
- Açık hesapları kimlik bilgilerine ekleyin (bir hesap için openids + email).
Şimdi açık kimlik için hangi kimlik bilgilerinin saklanacağını bilmiyorum. ve DB şeması hakkında emin değilim. İşte veritabanı şeması var:
Table: Users
UserId => PK
... => Custom info. Not related to authentication.
Table: Authentication
AuthenticationId => PK
LoginId => (when custom site membership => email address) (when openId => openid unique address)
UserId => FK to Users.
Provider =>(when custom site membership => "CUSTOM") (when openId => openid provider address)
Password => filled when using custom membership. empty when using open id.
Şimdi bir kullanıcı olup olmadığını Openid/özel üyeliğini kullanarak, açtığında, sadece kimlik doğrulama masaya bakıp kimlik bilgilerini bakmak ve uygun kullanıcıyı olsun. Hiçbir kullanıcı yoksa, yeni bir kullanıcı oluşturur ve kimlik doğrulama tablosuna bir giriş ekledim.
ana soru:
Provider
veLoginId
Openid kimlik depolamak için yeterli (bu alanlarda depolanan ne olduğunu görmek için yukarıdaki yorumları görmek) depolamak mı? Herhangi bir ek veri saklamalıyım, böylece kullanıcı ben döndüğünde kayıtlı verilerime göre onu doğrulayabilir miyim?Bunu uygulamak için başka (daha verimli) bir yaklaşım önerir misiniz?
Teşekkür ederiz.
"Sağlayıcı" sütununu kaldırdım ve 'bit 'türünde' IsOpenId 'ekledim. Kimlik doğrulama tablolarını ayırmanın avantajları nelerdir (openid ve custom için) [OpenID kimlik doğrulamaları için gereksiz parola 'sütununu kaldırmak yerine]? – Kamyar
Sizin için cevabımı artırdım. –
Mükemmel! Teşekkürler. – Kamyar