Bu kavramsal bir sorudur.
RESTful web hizmetine karşı oturum açma eylemini desteklemesi gereken bir istemci (mobil) uygulamam var. Web hizmeti RESTful olduğundan, bu, istemcinin kullanıcıdan bir kullanıcı adı / şifre kabul etmesi, bu kullanıcı adını / şifreyi hizmetle doğrulaması ve ardından sadece bu kullanıcı adını / şifreyi sonraki tüm isteklerde göndermeyi hatırlaması anlamına gelir.
Bu web hizmetindeki diğer tüm yanıtlar JSON biçiminde sağlanır.
Soru, web hizmetini yalnızca belirli bir kullanıcı adının / şifresinin geçerli olup olmadığını öğrenmek için sorguladığımda, web hizmeti her zaman JSON verilerinin bana başarılı veya başarısız olduğunu söyleyerek yanıt verip vermeyeceği veya iyi kimlik bilgileri ve HTTP için HTTP 200 döndürmesi mi gerektiğidir. 401 hatalı kimlik bilgilerinde.
Sormamın nedeni, diğer bazı RESTful hizmetlerinin, yalnızca kimlik bilgilerinin geçerli olup olmadığını sorduğunuzda bile kötü kimlik bilgileri için 401 kullanmasıdır. Ancak, benim 401 yanıtlarından anladığım kadarıyla, geçerli kimlik bilgileri olmadan erişiminizin olmaması gereken bir kaynağı temsil ediyorlar. Ancak oturum açma kaynağına herkesin erişebilmesi GEREKİR çünkü oturum açma kaynağının tüm amacı, kimlik bilgilerinizin geçerli olup olmadığını size söylemektir.
Başka bir deyişle, bana öyle geliyor ki:
myservice.com/this/is/a/user/action
Kötü kimlik bilgileri sağlanırsa 401 döndürmelidir. Ancak şöyle bir istek:
myservice.com/are/these/credentials/valid
o belirli URL (istek) geçerli kimlik bilgileriyle veya bunlar olmadan yetkilendirildiği için hiçbir zaman 401 döndürmemelidir.
Bu konuda şu ya da bu şekilde bazı haklı görüşler duymak istiyorum. Bunu halletmenin standart yolu nedir ve bunu işlemenin standart yolu mantıksal olarak uygun mudur?