it-swarm-tr.com

Bir kullanıcının kimliğini doğrulamanın doğru yolu nedir?

Birkaç yıl önce Joomla'nın dışından gelen kullanıcıların kimliğini doğrulayan küçük ve çok eksik bir bileşen yazdım! yani bir mobil uygulama.

Bunu teslim etmenin uygun veya tercih edilen bir yolu var mı?

7
Nestor Ledon

Yorumunuza dayanarak, bir OAuth kurulum arıyorsunuz. Bildiğim kadarıyla, Joomla'nın Oauth sınıfları çekirdekte yerleşiktir, ancak bu sınıflar Joomla'nın istemci olarak hareket etmesine izin vermektir (mobil uygulamanız sizin durumunuzda bir istemcidir) Size sunucu olarak çalışma seçeneği sunmazlar.

Kısa bir süre önce bu paketi Joomla Framework üzerinde OAuth2 Sunucusu kurmak için kullandım: https://github.com/bshaffer/oauth2-server-php . Çok iyi çalıştı. Bu, tüm kurulumu ve çalıştırmayı kesinlikle birkaç gün sürecektir, ancak bunu kesinlikle Joomla içinde ayarlayabilirsiniz.

OAuth2 içinde bir kullanıcının kimliğini doğrulamak için birkaç farklı yöntem vardır. Genel yaklaşım, istemcinin giriş bilgilerini girmek için kullanıcıyı sitenize yönlendirmesini sağlamaktır. Ardından, istemciyi erişim belirtecine dönüştürdüğü bir kodla kullanıcıyı istemciye yeniden yönlendirirsiniz.

Mobil uygulamayı da kontrol ettiğiniz gibi göründüğünden, bu gereksizdir. İstemciye güvenirsiniz (umarım), böylece kullanıcının uygulamaya giriş yapmasını sağlayabilirsiniz.

Daha sonra burada özetlenen "Kaynak Sahibi/Parola Kimlik Bilgileri" seçeneğini kullanırsınız: http://bshaffer.github.io/oauth2-server-php-docs/overview/grant-types/ . Bu mobil uygulama sadece Joomla sitenize girilen kullanıcı/şifreyi gemi ve daha sonra Joomla sitesi doğrulama için bir jeton geri gönderir. Jeton kaydedilip bir dahaki sefere tekrar giriş yapmak yerine kullanılabilir.

Bu, mobil kullanıcıları tekrar giriş yapmaya zorlamak için jetonları geçersiz kılmak için Joomla sitesinde kontrol sağlar.

5
David Fritsch

Aşağıdaki kodu kullanabilirsiniz:

JFactory::getApplication()->login($credentials);

nerede:

$credentials = Array('username' => string, 'password' => string);
4
csbenjamin

OAuth/OAuth2 gibi bir şey kullanmak istiyorsunuz. Buradaki fikrim doğru değil OAuth ama Joomla hakkındaki bilgime dayanarak en kolay yol.

IP'ye bağlı bir belirteç oluşturmak için Joomla'daki bileşene API çağrısı yoluyla kullanıcıyı doğrulayın, ardından bu belirteci doğrulayan ve onlar için oturumu oluşturan bir GET isteğiyle yönlendirin. Simgenin güvenliği zaten kolaydır, çünkü zaten kimliği doğrulanmış kullanıcının kimliğini doğrulamak için IP'ye dayanır, en iyi yol yalnızca bir kez kullanılabileceğinden emin olmaktır. API çağrısı için en iyi sonuçlar için şifrelenmiş bir SSL POST isteği) olmalıdır.

Bu yüzden bir POST kullanıcıların IP, kullanıcı adı ve şifresini içeren bileşene istek gönderin. Hepsi geçerliyse bir jeton geri gönderin. Daha sonra kullanıcıyı bu jetonu içeren bileşeninize yönlendirirsiniz. Joomla API'sının bir kişiyi oturum açmak için nasıl kullanılabileceğini bilmiyorum, ancak bunun için bir şey olduğundan eminim.

Düzenleme: Görünüşe göre csbenjamin cevap giriş için API gitti.

3
Jordan Ramstad