Mam tabeli w mojej bazy danych o nazwie keys
że ma taką strukturę:laravel: Generowanie losowe Unikalny token
id | user_id | token_id | token_key
każdym razem, gdy użytkownik loguje się do mojej strony, muszę wygenerować nowy token_id
i token_key
zestaw do tego użytkownika. Jak mogę wygenerować losowy token zarówno dla token_id
, jak i dla token_key
, zachowując jednocześnie dwie wartości?
Na przykład, jeżeli:
token_id
jestdfbs98641aretwsg
,token_key
jestsdf389dxbf1sdz51fga65dfg74asdf
Znaczenie:
id | user_id | token_id | token_key
1 | 1 | dfbs98641aretwsg | sdf389dxbf1sdz51fga65dfg74asdf
Nie ma wiersza w tabeli z ta kombinacja tokenów. Jak mogę to zrobić?
Czy możesz wyjaśnić, jak pętla while zagwarantuje tam wygrał czy to jakieś duplikaty? – user5486944
Dokładniej, co robi 'instanceof' w pętli while? – user5486944
['do-while'] (http://php.net/manual/en/control-structures.do.while.php) pętla będzie" robić "tak długo, jak długo wyrażenie w" while "będzie" prawdziwe " '(i będzie działać co najmniej raz, w przeciwieństwie do' while-do'). W tym konkretnym przykładzie wygeneruje token id/key pair, a następnie spróbuje znaleźć użytkownika w bazie danych, która ma określoną parę tokenów i kluczy. 'instanceof' sprawdza czy wynik jest instancją klasy' User', co oznacza, że sprawdza, czy taki użytkownik został znaleziony. Jeśli tak, 'zrobić' wykona się ponownie i utworzy kolejną parę, i tak dalej, dopóki nie znajdzie żadnego użytkownika mającego wygenerowaną parę identyfikatora/klucza tokena. –