Vlastní authenticator nedaří se mi implementovat do configu

JonatanRek
Člen | 20
+
0
-

https://i.imgur.com/a1xmFgC.png
https://i.imgur.com/YTZSd7y.png
https://i.imgur.com/hyN61Fl.png

dobrý den snažím se napsat vlastní authenticator pro nette aby ověřoval uživatele vůči záznamům v databazi al nedaří se mi do mohl by mi někdo pomoci ?

Editoval JonatanRek (28. 5. 2018 13:33)

Jan Endel
Člen | 1016
+
+4
-

Ahoj,

na první pohled vidím dva trably:

  • máš typo v názvu metody, není to authentivate ale authenticate (btw, kdybys použil šikovné IDE, třeba PHPStorm, tak by ti to podtrhnul, protože neimplementuješ správně interface)
  • Na začátku use Nette\SmartObject; ti chybí lomítko na začátku tedy use \Nette\SmartObject; nebo ještě lépe ten smart object dát nahoru do use sekce:
<?php

namespace App\Auth;

use Nette\SmartObject;

class MyAuthenticator implements Nette\Security\IAuthenticator
{
	use SmartObject;
	//...
}
JonatanRek
Člen | 20
+
0
-

https://i.imgur.com/BvXUJCF.png
https://i.imgur.com/gfPWhYL.png

tak nějaké chybky jsem díky PHP stormu opravil ale stále nefunguje :(

Pavel Kravčík
Člen | 1196
+
0
-

@JonatanRek: Chybí Ti tam lomítko na začátku v tom implementování interface. Takovouhle chybu v namespace bys měl být schopen rozklíčovat ale sám. Pokud Ti to smysl nedává, zkus ještě profrčet základy PHP, než budeš nořit hlouběji do Nette. Ušetříš si hodně záseků. :)

CZechBoY
Člen | 3608
+
-1
-

Nejspíš si soubor nenahrál na hosting.

nightfish
Člen | 519
+
0
-

AutentiException má být AuthenticationException, Password::verify má být Passwords::verify. Laděnka s Fatal Errorem odkazuje na stav, kdy jsi neměl zpětné lomítko před Nette\Security\IAuthenticator, přestože v prvním screenshotu ho napsané máš…

uestla
Backer | 799
+
+1
-

Plus tam jsou problémy s názvy tříd: https://i.imgur.com/rBNhZzP.png

  • Password -> Passwords
  • AutentiException -> AuthenticationException

Nemáš nějaký problém s editorem?


EDIT: @nightfish jsem pomalej! :-)

Editoval uestla (28. 5. 2018 15:04)

Jan Endel
Člen | 1016
+
0
-

Vidím, že by ti mohl pomoci článek o namespace. Možná ti ušetří nějaké nervy.

Plus koukej, co ti PHPStorm vysvěcuje (takový béžový podklad). Když na to najedeš myší, tak ti i napíše, co je špatně (bohužel anglicky, ale věřím, že to zvládneš).

Editoval Jan Endel (28. 5. 2018 16:30)

JonatanRek
Člen | 20
+
0
-

Jan Endel napsal(a):

Vidím, že by ti mohl pomoci článek o namespace. Možná ti ušetří nějaké nervy.

Plus koukej, co ti PHPStorm vysvěcuje (takový béžový podklad). Když na to najedeš myší, tak ti i napíše, co je špatně (bohužel anglicky, ale věřím, že to zvládneš).

To vím a s namespace problém není a PHP Stom mi jen řekne že třída je vícekrát definovaná i když v projektu ji nikde jinde nedefinuji

JonatanRek
Člen | 20
+
0
-

uestla napsal(a):

Plus tam jsou problémy s názvy tříd: https://i.imgur.com/rBNhZzP.png

  • Password -> Passwords
  • AutentiException -> AuthenticationException

Nemáš nějaký problém s editorem?


EDIT: @nightfish jsem pomalej! :-)

Díky měl jsem nějak pokažený PHP Storm díky!! odstranilo to dost problémů ale bohužel jsem se jako v kruhu vrátil k tomu že config mi nenajde mojí autentikační třídu a já nevím proč, zkoušel jsem ji i requirovat v boostrap.php ale nepomohlo nemusím někde nette říci že to má načíst protože autoload funguje jen pro vendor že ?

Martk
Člen | 661
+
0
-

JonatanRek napsal(a):

Jan Endel napsal(a):

Vidím, že by ti mohl pomoci článek o namespace. Možná ti ušetří nějaké nervy.

Plus koukej, co ti PHPStorm vysvěcuje (takový béžový podklad). Když na to najedeš myší, tak ti i napíše, co je špatně (bohužel anglicky, ale věřím, že to zvládneš).

To vím a s namespace problém není a PHP Stom mi jen řekne že třída je vícekrát definovaná i když v projektu ji nikde jinde nedefinuji

Honza nemyslel to podtržené vlnkou, ale pozadí pod např. Password, když na to najedeš, tak by ti to mělo napsat „Undefined class Password“.

Jaká je cesta od kořene k tomu souboru?