很多登录代码 [英] Lots of Login Code

查看:69
本文介绍了很多登录代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是一个相当长的问题,但我知道问题出在哪里。我正在使用CakePHP 2.0制作ajax登录脚本,但始终失败。我将发布我的所有代码,并希望有人有时间来阅读它。

This is a fairly long question but I have know idea where it's going wrong. I am making an ajax login script using CakePHP 2.0 but it keeps failing. I will post all of my code, and i hope someone has the time to go through it.

这是我的SQL数据库

AccountID   AccountEmail    AccountPassword  AccountActive  
1   chris@hotmail.co.uk     pass            0   
2   chris@gmail.com         pass            1 

这是我的相关标准代码

class Account extends AppModel {

public $name = 'Account';
public $validate = array(
    'AccountEmail' => array(
        'required' => array(
            'rule' => array('notEmpty'),
            'message' => 'Please Enter A Valid Email.'
        ),
        'email' => array(
            'rule'    => array('email', true),
            'message' => 'Please supply a valid email address.'
        )
    ),
    'AccountPassword' => array(
        'required' => array(
            'rule' => array('notEmpty'),
            'message' => 'Please Enter A Valid Password.'
        )
    )
);  
}

这是我相关的控制器代码

class AppController extends Controller {

/**
* Class Variables
*/
public $helpers = array('Js', 'Html', 'Session', 'Form');
public $components = array(
    'Session',
    'RequestHandler',
    'Auth' => array(
        'logoutRedirect' => array(
            'controller' => 'Accounts', 
            'action' => 'login'
        ),
        'authError' => 'You can\'t Access That Page',
        'authorize' => array('Controller'),
        'authenticate' => array(
            'Form' => array(
                'fields' => array(
                    'username' => 'AccountEmail', 
                    'password' => 'AccountPassword'
                ),
                'scope' => array('AccountActive' => '1')
            )
        )
    )
);
}

class AccountsController extends AppController {

/**
*   Class Variables 
*/
public $name = 'Accounts';
public $layout = 'Accounts';

/**
*   Class Functions 
*/
public function login()
{
    if ($this->request->is('ajax')) {
        $this->Account->set($this->data);
        if ($this->Account->validates()) {
            if($this->Auth->login()) {
                echo "logged In";
                exit;
            } else {
                echo "Login Failed";
                exit;
            }
        } else {
            echo 'validation/' . json_encode($this->Account->invalidFields());
            exit;
        }
    }
}

我认为没有还有什么。再次,我为海量的代码感到抱歉,但我只是不知道您需要什么。

信息全部通过'echo'传递给jquery,目前它只是通过显示响应'alert'。

我知道验证工作正常,但是如果我输入应该可以登录的人的信息,它只会显示登录失败。谢谢。

I don't think there is anything else. Again i'm sorry for the huge amount of code but i just don't know what you need.
The info is all passed via 'echo' to jquery which at the moment is just displaying the response via 'alert'.
I know the validation is working, but if i enter the info of someone who should be able to login it just shows "Login Failed". Thanks For Your Time.

推荐答案

您在数据库中的密码必须采用哈希形式。使用Cake的默认设置, 通过将为: 1c31af5bd9913ff511fe780f506e6fab68979b90

Your passwords in the database need to be in their hashed form. Using Cake's default settings, 'pass' would be: 1c31af5bd9913ff511fe780f506e6fab68979b90

这篇关于很多登录代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆