I should have looked at the API first.
I stripped some of the data I was passing to $this->Auth->login();
I changed it from $this->Auth->login($loginUser); to $this->Auth-
>login($loginUser['User']['id']);
Its now authenticating the correct user.
On Dec 26, 1:43 pm, Nick <nlof...@gmail.com> wrote:
> Has anyone else seen this, it appears to only happen when using the
> auth component with cookies. If I have an e-mail that begins with a
> number, the auth component authenticates the wrong user. It takes
> whatever the leading number is and logs in the user with the ID of
> that number, instead of the user with the correct e-mail address. Any
> other e-mail account login works fine, as long as it doesn't begin
> with a number.
>
> Here's what my code looks like:
>
> In my User Model I use this to check the login and find the correct
> user:
>
> function checkLogin($email)
> {
> $user = $this->findByEmail($email);
>
> if ($user)
> {
> return $user;
> }
> return null;
> }
>
> In my AppController:
>
> $this->Auth->loginAction = array('controller' => 'users',
> 'action' => 'login');
> $this->Auth->logoutRedirect = '/';
> $this->Auth->loginError = 'Either your Email or Password are
> incorrect. Please try again';
> $this->Auth->authError = 'Please Log In before attempting to
> access this page.';
> $this->Auth->autoRedirect = false;
>
> $cookie = $this->Cookie->read('User');
>
> if (is_array($cookie) && !$this->Auth->user())
> {
> $loginUser = $this->User->checkLogin($cookie['email']);
> if (isset($loginUser)){
> $loginSuccess = $this->Auth->login($loginUser);
> if (!$loginSuccess){
> $this->Cookie->del('User');
> }
> }
> }
>
> And in my UsersController:
>
> function login() {
> if ($this->Auth->User()){
>
> if (!empty($this->data)){
> if (!($this->data['User']['remember'])){
> $this->Cookie->del('User');
> } else {
> $cookie = array();
> $cookie['email'] = $this->data['User']['email'];
> $this->Cookie->write('User',$cookie,true,'+2 weeks');
>
> }
> unset($this->data['User']['remember']);
> }
> $this->redirect($this->Auth->redirect());
> }
> }
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to cake-php+unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---
No comments:
Post a Comment