ForumCała strona

Nawigacja

Aktualnie online

Gości online: 33

Użytkowników online: 0

Łącznie użytkowników: 25,400
Najnowszy użytkownik: AlojzyBartek

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

Zbigniew@
17.11.2024 11:33:24
Nie ten grzeszy kto pije, ale ten, kto się nie upije.

JazOOn
16.11.2024 20:46:18
tja

Zbigniew@
15.11.2024 18:58:17
Kto pije, ten nie bije.

JazOOn
31.10.2024 20:49:47
Kto pije?

piterus
30.10.2024 19:45:48
I będziemy śpiewać: "Kiedy 20 blisko, przebadaj wszystko, przebadaj wszystko..." Pfft

Pobierz nową wersję
Pobierz podręcznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Zobacz temat

 Drukuj temat
Wspólne logowanie użytkowników PHP-Fusion i Minecraft
MeTeo
Witam,

Chciałbym scalić konta użytkowników z gry (minecraft) z kontem na stronie. Jako, iż kiedyś używałem PF, to chciałbym nową stronę oprzeć właśnie o niego no i pojawia się problem. Tworząc serwer do gry, zakładałem inny kierunek rozwoju no i teraz sobie nieco zrobiłem pod górkę.

Ustawiłem nietypowe hasowanie (xAuth, ale czytając dalej doszedłem, że to whirlpool). Są nawet fragmenty kodu, do zaimplementowania przy odczytywaniu i kodowaniu hasła, ale kompletnie nie mam pojęcia jak tego użyć. Są to odpowiednia dwa poniższe kody:

Pobierz kod źródłowy  Rozwiń Kod źródłowy

oraz
Pobierz kod źródłowy  Rozwiń Kod źródłowy


Instaluję aktualnie świeżą kopię PHP-Fusiona, więc mogę eksperymentować ze wszystkim. Później chcę tylko przenieść zawartość kolumny kont z gry do kont ze strony.

Na upartego mogę przejrzeć logi i powypisywać wszystkie hasła, ale zbyt dużo tego.

Z góry dziękuję :)


PW od moderatora:
  1. Przeniesienie tematu - Pieka 11.03.2012 19:55

Edytowane przez Pieka dnia 11.03.2012 19:55:22
 
Wścibski Gość
Dodany dnia 25.11.2024 08:56:35
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
Spoczywaj w pokoju... Creeper
Z xAuth nie miałem do czynienia od czasu stwierdzenia, że ma dużo błędów. Bardziej polecam AuthMe. Integracja z własną stroną polega na dodaniu funkcji sprawdzającej użytkownika i hasło z tabeli authme. Nie trzeba nic zmieniać w bazie PHP-Fusiona, wystarczy, że login i hasło z tabeli [prefix]_users i authme będą takie same.
Pobierz kod źródłowy  Rozwiń Kod źródłowy
 
MeTeo
Creeper - właśnie używam AuthMe, tylko dałem haswanie "xauth".

Mógłbyś troszkę jaśniej to objaśnić? Smile Fusion ma hasowanie w SHA256, a Authme ma to właśnie xAuth, co jest prawdopodobnie whirlpoolem.

Ale jak to działa? Tylko sprawdza? Chciałbym by rejestracja na stronie było jednocześnie rejestracją na serwerze. Bo o ile dobrze zrozumiałem, teraz każdy mógłby założyć konto na stronie z takim samym nickiem jak ja na serwerze i sterować moim kontem.
 
Spoczywaj w pokoju... Creeper
Nie musi być hash xAuth. Wejdź w plik konfiguracyjny (AuthMe/config.php) i znajdź linijkę
Pobierz kod źródłowy  Rozwiń Kod źródłowy

W zależności od tego jakiego hasha chcesz użyć wpisujesz MD5, SHA1, SHA256, xAuth.
Teraz jeżeli chodzi o połączenie tego z Fusionem to musisz wstawić funkcję, którą wymieniłem w miejsce tworzenia sesji logowania. Ja bym to wstawił w maincore.php w taki sposób:
To
Pobierz kod źródłowy  Rozwiń Kod źródłowy

Przerobił tak
Pobierz kod źródłowy  Rozwiń Kod źródłowy

Teraz kwestia rejestracji. Najlepiej by było gdyby rejestracja działała w obydwie strony, ale niestety AuthMe nie stworzy konta na Fusionie więc najlepiej na serwerze dać informację, że konta można tworzyć tylko poprzez stronę, oczywiście istnieje możliwość zrobienia modyfikacji, ale to inna kwestia.

Po tym wszystkim pozostaje tylko dodanie do register.php zapytania tworzącego użytkownika w tabeli [prefix]_users i authme jednocześnie. W tym wypadku hash mógłby być różny, bo nie szłoby to przez jedną tabelę.
 
MeTeo
@Creeper - tak, tylko że jeżeli teraz zmienię hasowanie w AuthMe to nikt sie na aktualne konto nie zaloguje, czyż nie? No chyba że znasz sposób na obejście tego problemu?

Twój kod chyba nie do końca spełnia swoje zadanie, bo chyba tylko sprawdza czy loginy i hasła są takie same, ale konta graczy już istnieją, a konta na stronie nie :/

Myślę, że sposób w jaki chcę to zrobić jest prostszy i mniej konfliktowy tylko potrzebuje sposobu by PHP-Fusion generował hasło tak samo jak AuthMe ustawiony na xAuth. Jest taka możliwość?

Wtedy bym zmienił nazwę tabeli authme na prefix_users a potem bym po prostu w AuthMe zmienił tablę z "authme" na "prefix_users" dodając w niej brakujące pola PHP-Fusiona. Powinno chyba działać...

Powiedzmy nawet, że zmienię już kodowanie w Authme. Chcę tylko by obie tworzyły identyczne hasła Smile
 
Spoczywaj w pokoju... Creeper
W takim razie musisz skorzystać z pierwszej funkcji, którą napisałeś w pierwszym poście
Pobierz kod źródłowy  Rozwiń Kod źródłowy

do kodowania hasła za pomocą xAuth. Później zamieniasz w PasswordAuth.class.php linijki odpowiedzialne za kodowanie hasła.
Jeżeli dobrze przejrzałem ten plik to wystarczy tylko zmodyfikować odpowiednio
Pobierz kod źródłowy  Rozwiń Kod źródłowy

Pobawię się tym na localhoście i jakby co opiszę dokładnie co trzeba zrobić.
 
MeTeo
Byłbym w sumie wdzięczny za pomoc, bo zmieniłem już w bazie typ hashowania (na whirlpool), podmieniłem owy fragmenty na:

Pobierz kod źródłowy  Rozwiń Kod źródłowy


Aczkolwiek wciąż generuje się kod, który ma niewiele wspólnego z tymi z Authme. Przykładowo,

Hasło wygenerowane z powyższym kodem
Pobierz kod źródłowy  Rozwiń Kod źródłowy

Hasło z Authme
Pobierz kod źródłowy  Rozwiń Kod źródłowy


Oba brzmią tak samo: password

Nie wspomnę już, że po owych zmianach w bazie nie generuje się zawartość w "user_salt", a i zalogować sie nie można ani na nowo założonym koncie, ani na starym.
 
Spoczywaj w pokoju... Creeper
Obydwa hasła zostały zakodowane na dwa różne sposoby. Podaj wartość poniższego pola z AuthMe/config.yml.
Pobierz kod źródłowy  Rozwiń Kod źródłowy
 
MeTeo
Pobierz kod źródłowy  Rozwiń Kod źródłowy

Wspominałem o tym na początku.
 
Spoczywaj w pokoju... Creeper
A więc tak:
  1. Zwiększ liczbę znaków pola z hasłem najlepiej do 200, ale znaków jest 140 więc możesz też dać tylko 140.
  2. Jedno słowo zakodowane hashem z xAuth będzie za każdym razem inne.

Co do całego logowania to zrobię modyfikację, która zmieni SHA256 w PHP-Fusionie na xAuth więc reszta to będzie tylko podłączenie.
 
MeTeo
Hmm... A jakbym zmienił kodowanie w Authme na SHA256? Wtedy w obu systemach byłoby to samo kodowanie, tylko czy wtedy "salt" się nie będzie gryzł? Na mój chłopski rozum, byłoby to chyba prostsze, a ja nie lubię skomplikowanych rozwiązań Smile Co musiałbym zmienić, żeby hasło wygenerowane przez PHP-Fusiona, było odczytane w grze przez AuthMe? Wystarczyłoby skrócenie "salt" w PHP-Fusionie do 12 znaków?
Edytowane przez Pieka dnia 11.03.2012 15:17:00
 
Spoczywaj w pokoju... Creeper
Powinno wystarczyć, ale jeżeli to nie pomoże to najprostszą i jednocześnie pewnie najmniej bezpieczną metodą jest zmiana w obydwu na MD5. W tym przypadku wszystko zostanie zaszyfrowane tak samo. W PHP-Fusionie wystarczyłoby tylko zmienić w
Pobierz kod źródłowy  Rozwiń Kod źródłowy

to
Pobierz kod źródłowy  Rozwiń Kod źródłowy

na
Pobierz kod źródłowy  Rozwiń Kod źródłowy

oraz (najszybciej) ponowne zainstalowanie PHP-Fusion ze zmienionym w setup.php sha256 na md5.
 
MeTeo
Zrobiłem to wszystko w oparciu o SHA1. Zmieniłem generalnie linijkę na:
Pobierz kod źródłowy  Rozwiń Kod źródłowy

Musze co prawda wygenerować hasła na nowo, no ale wszystko działa. Dzięki za naprowadzenie na rozwiązanie.
 
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl