Yii数据库用户信息登录

原本的Yii里面只有admin和demo账号,怎么可以使用数据库里面的Username和Password登陆呢?

数据库:例如DatabaseName。

数据表:例如TableName,表里面有username和password等相关信息。

Yii:

1.在main.php开启‘db‘=array(…………),开启数据库连接(略)

2.生成TableName的model。

3.在UserIdentity.php中改变原本的账号审查。

代码如下:

<?php
class UserIdentity extends CUserIdentity
{
parivate $_id;// 定义一个私有变量
public function authenticate(){
$username=strolower($this->username);
$user=User::model()->find(‘LOWER(username)=?‘,array($username));
if($username===null){
$this->errorCode=self::ERROR_USERNAME_INVALID;
}else if(!$username->validatePassword($this->password)){
$this->errorCode=self::ERROR_PASSWORD_INVALID;
}
else{
$this->_id=$user->id;
$this->username=$username->username;
$this->errorCode=self::ERROR_NONE;
}
return $this->errorCode===self::ERROR_NONE;
}
public function getId(){
return $this->_id;
}
}

4.在User.php中添加一个validatePassword方法。

public function validatePassword($password){
return $this->encrypt($password)===$this->password;
}

5.在User.php中添加一个加密的encrypt加密方法:

public function validatePassword($password){
return $this->encrypt($password)===$this->password;
}

 

PS:UserController中:

‘user‘=array(‘*‘); 任意的用户

‘user‘=array(‘@‘); 注册的用户

‘user‘=array(‘admin‘);指定的用户

PS:Yii中create账户信息时候,希望保存在数据库中的密码是md5加密的话:

在User.php中添加一个方法:

public function validatePassword($password){
return $this->encrypt($password)===$this->password;
}

Yii数据库用户信息登录,布布扣,bubuko.com

时间: 2024-08-08 22:09:45

Yii数据库用户信息登录的相关文章

springboot 使用数据库用户权限登录

1.加入spring security的支持包, <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> 2.主要实现两个接口,一个是UserDetails 用户详细信息,一个是UserDetailsService用户信息服务 public c

YII 数据库,模型,登录验证

//protected/config/main.php //数据库连接设置 'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=blog', 'emulatePrepare' => true,//PDO扩展 'username' => 'root', 'password' => 'xxxxxx', 'charset' => 'utf8', 'tablePrefix' => 'hd_', /

SQLServer创建用户自定义数据库用户

创建用户自定义数据库用户注意事项 如果已忽略 FOR LOGIN,则新的数据库用户将被映射到同名的SQL Server登录名. 默认架构将是服务器为此数据库用户解析对象名时将搜索的第一个架构. 除非另外指定,否则默认架构将是此数据库用户创建的对象所属的架构. 如果用户具有默认架构,则将使用默认架构. 如果用户不具有默认架构,但该用户是具有默认架构的组的成员,则将使用该组的默认架构. 如果用户不具有默认架构而且是多个组的成员,则该用户的默认架构将是具有最低principle_id的Windows组

微信登录时用户信息无法写入数据库

问题: 微信登录时,由于用户名中带有特殊字符,无法写入数据库 环境: linux/nginx/mysql/php 做了一个公众号网页开发的项目,拿一个网上开源的商城进行二开,框架是TP5.最近碰到一个问题,微信登录的时候,有的用户会无法登录网页,有的用户又能够正常登录,通过日志定位到了问题,在用户初次登录的时候,MySQL写入用户信息的时候出错了.项目中MySQL数据库的编码是utf8mb4,但创建表的时候又给了utf8的编码,而utf8编码最多三个字节,,EMOJI表情或者某些特殊字符的编码是

PHP版微信第三方实现一键登录及获取用户信息的方法

本文实例讲述了PHP版微信第三方实现一键登录及获取用户信息的方法.分享给大家供大家参考,具体如下: 注意,要使用微信在第三方网页登录是需要"服务号"才可以哦,所以必须到官方申请. 一开始你需要进入微信公众平台开启开发模式,并且填写oauth2的回调地址,地址填写你项目的域名就可以了.比如:www.baidu.com或zhidao.baidu.com.如果你的项目在二级域名就写二级域名 前端url授权地址,在url中填写appid与你项目中方法中的oauth的地址,具体在下面的代码中可以

ASP.NET MVC单点登录(多站点共享用户信息)

一.多站点共享用户信息解决方案: 采用分布式缓存Memcache模拟Session进行用户信息信息共享 1.视图部分 @{ Layout = null; } <!DOCTYPE html> <html> <head> <title>XX商城后台管理系统登录</title> <script type="text/javascript"> if (window.parent.window != window) { wi

Mvc4单点登录之四 配置Cas服务端,返回更多的用户信息!

        .Net单点登录详解 (SSO)        Mvc4单点登录之一Cas简单介绍        Mvc4单点登录之二 Cas server端配置            Mvc4单点登录之三Cas 客户端配置            前几篇博客大致的介绍了,cas的使用,在这篇博客当中,将为大家介绍一下如何配置服务端,让用户登录之后,返回更多的用户信息! 一.首先需要配置属性attributeRepository 首先,你需要到WEB-INF目录找到 deployerConfigC

CAS学习笔记(三)—— SERVER登录后用户信息的返回

一旦CAS SERVER验证成功后,我们就会跳转到客户端中去.跳转到客户端去后,大家想一想,客户端总要获取用户信息吧,不然客户端是怎么知道登录的是哪个用户.那么客户端要怎么获取用户信息呢? 其实验证成功,跳转客户端这个过程中,CAS SERVER 会返回登录的相关信息给客户端,客户端只要进行获取,就能知道登录的具体是哪个用户了.不过CAS 默认只返回用户账号给客户端,那么怎么定义CAS SERVER返回的信息呢? 这就是本篇具体讲解的内容了,大家听我慢慢道来. 相关接口            

Cookie中用户登录信息登录验证

public class FormServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletR