Oturum Arama
Coddy'nin Node.js Journey'sinin Kimlik Doğrulama ve Güvenlik bölümünün bir parçası. Ders 9 / 24.
Bir oturum kimliği kayıtlı bir oturumu gösterir ve bu oturum da bir hesabı gösterir. Anahtarın kendisi bir kullanıcı adı değildir. İsteği kimin yaptığını belirlemeden önce her iki bağlantıyı da çözümleyin.
// tickets: {key: 'example-key', memberId: 7}
const ticket = tickets.find(t => t.key === receivedKey);
const member = ticket && members.find(m => m.id === ticket.memberId);Aramalardan biri sonuç vermezse kullanıcı döndürmeyin. Gerçek oturum kimlikleri, başkalarının tahmin edememesi için uzun ve rastgele değerlerden oluşur; buradaki kısa anahtarlar ilişkiyi incelemeyi kolaylaştırır. Aşağıdaki proje, bu iki arama için diziler yerine MongoDB koleksiyonlarını ve findOne işlevini kullanır.
Görev
Kolayexercise.js dosyasında sağlanan sessions ve users dizilerini kullan. sid için oturumu, ardından id değeri bu oturumun userId değeriyle eşleşen kullanıcıyı bul. Kullanıcı adını user içinde döndür; aramalardan biri başarısız olursa null döndür.
GET /result?sid=key-a isteğini dene: {"user":"ada"}. ?sid=ada gibi bir kullanıcı adı hiçbir şeyi kanıtlamaz ve null döndürür. Hesabı olmadığı için ?sid=orphan da null döndürür.
Kendin dene
const sessions = [
{ id: 'key-a', userId: 10 },
{ id: 'key-b', userId: 20 },
{ id: 'orphan', userId: 99 },
];
const users = [
{ id: 10, username: 'ada' },
{ id: 20, username: 'bo' },
];
export function exercise({ sid }) {
return { user: sid };
}
Kimlik Doğrulama ve Güvenlik bölümündeki tüm dersler
Kendi başına pratik yap: Express playground