WORDPRESS : Logowanie oraz rejestracja przy pomocy kont Google i Facebook

0

Hej, tworzę własny formularz logowania oraz rejestracji w CMS Wordpress.
Jednym ze sposobów logowania oraz rejestracji są konta Social Media.
Wykorzystuje w tym celu bibliotekę hybridauth i nie wiem jak rozwiązać pewną kwestią.

Przy połączeniu API z kontem użytkownika w social media otrzymuje dane takie jak identyfikator, imie, nazwisko, adres email i czasem dane kontaktowe.

Podczas rejestracji sprawdzam czy logowanie w social media odbyło się prawidłowo - nadaje LOSOWE hasło i tworzę użytkownika w Wordpress.
Problem mam z logowaniem - tutaj sprawdzam również czy logowanie w danym social media odbyło się prawidłowo, ale nie wiem co zrobić dalej, ponieważ Wordpress do logowania (funkcja wp_signon) potrzebuje hasła, które wcześniej wygenerowałem losowo.

Jedyne co przychodzi mi do głowy to na podstawie maila i identyfikatora tworzyć losowe hasło - dzięki temu zawsze będę mógł je sprawdzić. I tu pytanie - jak można to zrobić lepiej?

Zakładając, że powyższe jest rozwiązaniem idealnym (w co wątpię) to pojawia się inny problem - użytkownik który założył konto z googlem zawsze może wykorzystać standardowy formularz rejestracji i próbować zalogować się adresem email przypisanym do konta - wtedy też może zresetować sobie hasło i cały misterny plan generowania hasła (według wzorca) do sprawdzania logowania przez social upada.

Ewentualnie na koncie użytkownika mogę dodać informację o sposobie w jaki konto zostało założone i walidowac próby zalogowania innym sposobem, ale może to również można ograć lepiej?

Kodu nie dorzucam, bo mój problem dotyczy kwestii stricte organizacyjnych.
Ciekaw jestem podejścia i sposobów bardziej doświadczonych osób. Dla mnie to pierwszy formularz tego typu.

0

Sciaganij gotowa wtyczke

1

@szewa90: dobrze kombinujesz. Wtyczki właśnie tak działają.

  • logujesz się przez dane FB (jeżeli nie ma takiego użytkownika to go tworzysz, hasło będzie losowe)
  • z bazy danych WP wyciągasz ID użytkownika
  • wp_set_auth_cookie() - "logujesz" użytkownika za pomocą uzyskanego ID

Jak się zabezpieczyć przed zmianą hasła? Prosto - użytkownik "utworzony" przez FB niech ma zapisaną falgę w usermeta (przykładowo: from_social_media => true) i daj hooka na password_reset. Tam sprawdzaj, czy użytkownik, który próbuje zresetować hasło ma tą flagę ustawioną. Jeżeli tak, nie pozwól mu :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1