There are other threads with this issue, but none of the solutions there have fixed it for me. I am trying to get a user system setup with CakePHP.
When I go to /users/add and create an account, the password is hashed, but when I login, I get the error Invalid username or password
regardless of if I enter the email and password, or even the email and hashed password. I can’t seem to find the issue, any help would be appreciated.
Here are the relevant files, let me know if you need anything else:
login.php - https://pastebin.com/awUzAs52
UserController.php - https://pastebin.com/vJMs7JgT
Application.php - https://pastebin.com/Pg7UNQBd
AppController.php - https://pastebin.com/gen2yraP
UsersTable.php - https://pastebin.com/dduCAfAj
User.php - https://pastebin.com/Wd3XJPU9
Thanks in advance for any help you can provide.
Isn’t the Authentication config method in Application.php
supposed to be:
public function getAuthenticationService(ServerRequestInterface $request)
since the Middleware calls that hook?
I see your Application.php opts for
‘protected function configAuth(): \Authentication\AuthenticationService’.
You are calling the config method as an argument when you load the middleware on the queue but I don’t think that will work. The middleware needs to get an instance of the the application so recursive calling of the middleware queue can proceed.
There is a second constructor argument for the middleware but I don’t think this a place to put your config method either. Naming the method properly and letting the middleware call it will be the way to go.
1 Like
I tried that and it threw an error, I followed the CMS tutorial for setting up users, and I have since copied as many of the files as I can from there, and I still can’t get it working. Do you have any other ideas on what it could be (or what files I should look into)?
what was the error and what did your modifications look like?
I modified it the way you initially said to, and it did a whitescreen, I modified the AppController.php and Application.php files to be the same as the finished tutorial (https://github.com/cakephp/cms-tutorial/), but that doesn’t seem to be helping anything.
Is this the current application.php you’re using? If so, I do miss some of these?
use Authentication\AuthenticationService;
use Authentication\AuthenticationServiceInterface;
use Authentication\AuthenticationServiceProviderInterface;
use Authentication\Middleware\AuthenticationMiddleware;
Added those in, it is still not working.
use Cake\Auth\DefaultPasswordHasher;
vs.
use Authentication\PasswordHasher\DefaultPasswordHasher;
in User.php?
Tried that, it still isn’t working, even when I create a new user and try to login with that.
Thanks to everyone’s help, I fixed it by re-baking the user controller and following the instructions on the CMS tutorial again. It is working now, thanks again for the help!