Ik ben een authenticatie framework aan het maken. Hierbij heb ik wel wat afgekeken van het Symfony framework. Ik vond het toch wel leuk om eens iets zelf te proberen.
Mijn logica zit wel anders in elkaar dan die van Symfony, en ik ben er best blij mee tot nu toe, want het is heel flexibel en uitbreidbaar.
Mijn authenticatie framework ben ik zodanig aan het ontwerpen dat je niet alleen met een standaard login een gebruiker laat aanmelden. Ik ga er dus (net als Symfony) niet van uit dat een authenticatie alleen een gebruikersnaam/e-mail en wachtwoord nodig heeft.
Deze flexibiliteit is natuurlijk heel belangrijk.
Wat als de gebruiker van het framework een user wil laten inloggen met klantnummer en wachtwoord.
Of een productnaam en een licantiecode. (Ik noem maar iets)
Of alleen een API key. Of een eenmalige code uit een app.
Ik heb het dus zo ontworpen dat alle gegevens die nodig zijn bij de login, zijn gebundeld in een object.
Dit object noem ik gewoon een token en implementeert ook een TokenInterface. Denk aan Symfony.
Maar bij symfony wordt voor elk soort login een aparte token class gemaakt. Zoals een UsernamePasswordToken.
Ik wil gewoon gebruik maken van 1 token class.
Deze heeft dan een Identity object en een IdentityProof object.
Dat IdentityProof kan een wachtwoord zijn, een code, etc. En zowel Identity als IdentityProof kunnen in zich meerdere gegevens hebben.
IdentityProof kan bijvoorbeeld een wachtwoord en een activeringscode in zich hebben. (Bijvoorbeeld)
En Identity kan een klantnummer en email in zich hebben.
De gegevens kunnen gewoon worden toegevoegd aan de Identity en IdentityProof.
Maar IdentityProof is een beetje een rare naam.
De logica van het inloggen zelf wordt geschreven door de gebruiker van het framework door de Authentication class te extenden, of AuthenticatorInterface te implementeren. In die klasse kan dan de Identity en IdentityProof worden gelezen en zo kan alles verder gaan...
Weet iemand een betere naam voor IdentityProof?
En heeft iemand misschien opmerkingen over mijn class design?
Ik hoor het graag!
2.123 views