以資料庫驗證登入
由於 Yii 內定的原始框架程式, 採用綁定在UserIdentity.php 的 demo 與 admin 帳號密碼:
public function authenticate()
{
$users=array(
// username => password
'demo'=>'demo',
'admin'=>'admin',
);
而一般的網際程式都希望能夠利用特定的 User 資料表中的帳號與密碼來進行登入驗證, 因此必須進行如下修改:
component\UserIdentity.php 中的
public function authenticate()
{
// 根據使用者所輸入的 $this->username 在 User model 中(即對應資料表 user), 搜尋對應的
// 用戶名稱
$user=User::model()->find('LOWER(username)=?',array(strtolower($this->username)));
// 假如查無此帳號, 則回覆錯誤
if($user===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
// 若密碼不符, 也是回覆錯誤
else if(!$user->validatePassword($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
// 順利登入
$this->_id=$user->id;
$this->username=$user->username;
$this->errorCode=self::ERROR_NONE;
}
return $this->errorCode==self::ERROR_NONE;
}
用來利用資料表 user 驗證使用者登入.
在 User.php Model 中還需要:
/**
* Generates a salt that can be used to generate a password hash.
* @return string the salt
*/
protected function generateSalt()
{
return uniqid('',true);
}
截至目前為止, 已經完成下列事項:
- Yii 系統已經正確安裝, framework 目錄位於 www 目錄之外.
- Blog 骨架程式已經建立.
- Blog 系統所需要的 SQLite 資料表已經建立.
- main.php 中的資料連結設定已經配合更改.
- 與資料表對應的 model 與 CRUD 運作程式已經建立.
- 使用者登入的驗證, 已經由原先的內定帳號密碼, 改為經由 tbl_user 資料表進行驗證.
相关推荐
对于想要提升安卓应用登录注册功能的开发者来说,这是一个宝贵的资料库,可以帮助他们在实际项目中创造出更加吸引用户、功能完善的登录界面。同时,通过源码学习,开发者可以深化对安卓编程的理解,提高问题解决能力...
前端使用React搭配Redux到RWD网站,并使用Node.js与Express构造RESTful API,搭配CLI以ORM方式操作资料库,使用nginx反向代理部署于AWS。目录功能前端首页可以看到最近发布的文章。可以注册部落格。可以登录部落格。...
- **采购订单**:在这一环节,用户可以创建、编辑和跟踪采购订单,记录预计采购的五金商品种类、数量、单价、供应商信息等,以便于与供应商沟通和协调供货。同时,订单状态的更新有助于监控采购进度。 - **采购进仓*...
路由,调试和Web Srver网关接口(WSGI)网页样版是透过Jinja2命令列整和是透过click Flask可以透过不同的套件,扩充支援资料库,网页表单验证,和使用者权限电子邮件大型应用程序架构使用者登入使用者身份使用者简介...
- 使用OkHttp或Retrofit等库处理HTTP请求,实现与服务器的通信,如登录验证、获取或发送消息、更新用户信息等。 10. **事件监听与响应**: - 使用接口回调、EventBus或LiveData等机制,确保界面与数据模型之间的...
首先,让我们深入探讨一下“商城后台管理模板”的核心——用户商城后台登入管理。一个良好的后台管理系统必须具备安全可靠的用户身份验证机制,确保只有授权人员能够访问。瑞曼模板提供了用户注册、登录功能,可能...
在实现代码部分,报告采用了Qt库中的QSqlDatabase组件连接SQL Server数据库,执行SQL查询来验证用户登录信息。通过比较用户输入的用户名和密码与数据库中的记录,实现用户的身份验证。登录成功后,根据用户类型跳转...
每个模块的具体职责,如用户登入类负责验证用户信息,发送类负责构建和发送邮件,都在"类的功能设计"中详细阐述。 4. 在功能模块的实现部分,作者可能详细介绍了如何使用Java编程语言实现这些模块。例如,"程序主...
它的优势在于高效性、灵活性和广泛的库支持。C++源代码使得开发者能够更深入地理解程序的工作原理,并对其进行定制和优化。 【游戏客户端与登录器】 魔兽世界登录器(WOWLauncher)是连接玩家与游戏服务器的重要...
在个人资料页面,可以更新联系信息、岗位职责等,以确保信息的准确性和时效性。 - **设置** 设置功能允许用户自定义工作环境,如界面主题、语言选择、通知提醒等。此外,还可以调整软件的一些高级设置,以适应...
请确定以加载所需的系统驱动程序,而且该储存媒体并未毁损。 1006 0×000003EE 储存该档案的外部媒体发出警告,表示该已开启档案已经无效。 1007 0×000003EF 所要求的作业无法在全屏幕模式下执行。 1008 0×000003...
倾印逻辑磁碟管理员的磁碟上之资料库内容,其中描述 Windows 2000 动态磁碟分割。 ListDLLs 列出所有目前载入的 DLL,包括载入位置和他们的版本编号。2.0 版列印载入模组的完整路径名称。 LiveKd 使用 ...
倾印逻辑磁碟管理员的磁碟上之资料库内容,其中描述 Windows 2000 动态磁碟分割。 ListDLLs 列出所有目前载入的 DLL,包括载入位置和他们的版本编号。2.0 版列印载入模组的完整路径名称。 LiveKd 使用 ...
【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与...
倾印逻辑磁碟管理员的磁碟上之资料库内容,其中描述 Windows 2000 动态磁碟分割。 ListDLLs 列出所有目前载入的 DLL,包括载入位置和他们的版本编号。2.0 版列印载入模组的完整路径名称。 LiveKd 使用 ...
21. Statistical Sampling(统计抽样):经统计机率方式,由总体资料中抽选出部份,经由科学与数学的合理推算,以求了解总体数据之属性。 22. Structured Programming(结构化程序设计):为使程序的可读性提高,更...
完成修改并通过检测后,将修改后的对象登入配置库中,系统自动解除版本的封锁,形成新的版本。 - **CVS**(2分):开发人员检出需要变更的对象,在本地工作空间中进行修改并通过检测后,提交修改并使用系统命令与...
请确定以加载所需的系统驱动程序,而且该储存媒体并未毁损。 1006 0x000003EE 储存该档案的外部媒体发出警告,表示该已开启档案已经无效。 1007 0x000003EF 所要求的作业无法在全屏幕模式下执行。 1008 0x000003...