2012-06-22 40 views
6

Ben ve meslektaşlarım bir giriş süreci içeren bir uygulama geliştirmeyi (hem web uygulaması hem de mobil uygulama (iPhone & android)). Şu anda, kendi oturum açma mekanizmamıza sahibiz (kullanıcıların bizim uygulamamızdaki bir hesap için imzaladıkları ve bilgilerini Veritabanımızda sakladıkları). OAuth'u entegre etmek ve kullanıcıların Facebook, Twitter, LinkedIn ve Google ile giriş yapmalarına izin vermek istiyoruz. Şimdi Kullanıcıları hatırlamak için oAuth ile standart nedir?

, bunlardan herhangi biri ile kullanıcıların günlükleri, anlıyorum olarak giriş süreci uygulamamız dışında gerçekleşir ve temelde sadece kendi kaynaklarına erişmek için izin almak zaman.

Soruma şudur: oAuth aracılığıyla, kullanıcıları nasıl hatırlarız? diğer bir deyişle, giriş yapan kullanıcılar okuma/yazma ayrıcalıklarına sahiptir ve tercihlere sahiptirler. Uygulamamız aracılığıyla gerçekten kaydolmadıklarında bunları nasıl hatırlarız .. E-posta adreslerini "Kullanıcılar" tablosumuzda saklayabilir miyiz?

Böyle bir senaryoda en iyi uygulamalar nelerdir?

Sağladığınız bilgiler için teşekkürler.

cevap

11

birkaç farklı OAuth etkin web siteleri için kimlik doğrulama veritabanlarını inşa zorunda, ben size akılda tutulması gereken birkaç şey öğrendim diyebilirim.

  1. Sen tamamen bağımsız siteniz için kullanıcıların bir tablo olmalıdır hangi OAuth onlar kaydolma/sign-in için kullanılan sağlayıcısı. Bu, site kullanıcılarınızın sitenizdeki birincil kimlikleri altında birden çok hesabı bir araya getirmelerini sağlar. (Örneğin, hem Facebook'u hem de Twitter'ı sizinle ilişkilendirin.)
  2. Bir kullanıcının kaydolmasına izin verdiğinizde, onlardan bir e-posta adresi almalısınız. Facebook'u bunun için soruyor ya da doğrudan sormanız gerekiyor. Bu, kullanıcıları daha sonra üçüncü taraf OAuth'a bağlı olarak sitenizde kendi parolalarını belirlemeye "yükseltmenize" olanak tanır. (Sadece ilk parolalarını oluşturmaya başlamak için onları parola sıfırlama sayfanıza bir bağlantı gönderirsiniz.)
  3. Ana anahtarınız olarak e-posta adresini kullanmak istemezsiniz. Gerçekten tanımladığınız veya yapmadığınızdan emin değilim, ancak oturumlarını korumak için kullandığınız bir yerel kullanıcı kimliğine sahip olmayı gerçekten istiyorsunuz. Daha sonra Facebook kimliklerini veya Twitter kimliklerini bu yerelyle ilişkilendirin. kimlik ve bu tanımlayıcılar arasındaki yazışmalar kullanmak kaydedilir düşünün için sitenizin kullanıcıların hangi maç. geribildirim için
+2

sayesinde !! Birkaç soru: - 1 numaralı nokta ile ilgili olarak, kullanıcıların farklı OAuth hesaplarıyla (Facebook, Twitter, ...) oturum açtıkları durumlar için tasarlanmış, ancak hala gerçek bir hesap olarak kabul ediliyorlar mı? - # 2 noktasına gelince, ne demek yükseltme? Bu kullanım durumunu açıklayabilir misiniz? - # 3 ile ilgili olarak, sistem/veritabanı tarafından oluşturulan "yerel kullanıcı kimliği" dir mi veya son kullanıcı tarafından mı belirtiliyor? – mustang888

+0

Ayrıca, aşağıdaki kullanım durumunu nasıl ele alırsınız: Kullanıcı X, Facebook'ta oturum açar. Facebook kimliğini saklıyorum ve yerel bir kullanıcı kimliğine bağlarım. Bir sonraki sefer, Kullanıcı X Twitter üzerinden oturum açar. Kullanıcı tercihlerini getirebilmem için aynı kişiyle (Facebook ile daha önce giriş yapmış olan) aynı şeyi nasıl belirleyebilirim? E-posta adresine dayanan (Facebook ve Twitter hesapları arasında ortak olan)) olmak ?? Yardım için teşekkürler! – mustang888

+0

Bu e-postayı sağlamadıkları için Twitter ile nasıl çalışır? Twitter kullanıcısı e-posta gibi benzersiz bir kimlik olmadan facebook kullanıcısı ile aynı olup olmadığını bilmek için herhangi bir yolu var mı? "İlk şifrelerini oluşturmaya başlamak için onlara şifre sıfırlama sayfanıza bir link yollamanız" için – CMCDragonkai