cloudare mysql 密码修改_【Laravel5】Auth组件重写密码认证方式为MD5加密

学习不久Laravel,碰壁非常多,整理一些 Auth组件上的理解,并重写Auth组件密码认证方式为MD5加密的一些调试过程,分享给其他初学Laravel的用户。

需求说明

由于项目是一个老项目,需要将部分数据直接迁移到新项目中直接使用,包括数据库的一些设计需要继续沿用。所以能改动的只有代码逻辑部分。

用户表:uc_user

加密方式 : md5

密码字段:user_pass

Auth::attempt 校验并登录

Auth::once 校验不登录,用于一次性授权,类似与api接口的场景

Auth::logout 注销登录的用户

Auth::user 获取已经登录的用户信息

Auth::check 检查用户是否已经登录

以上函数来源于哪里?laravel文档、查阅laravel代码打debug得知。

文件位于:/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php

调试是一件很痛苦的事情,以下是调试完毕整理的过程说明,分享给各位需要用到的朋友。

1.配置数据库账户密码信息

修改根目录下 .env 文件即可,如图,只修改数据库信息即可,其他可默认。

APP_ENV=local

APP_DEBUG=true

APP_KEY=base64:IxkVvrRLqdJeU9h8vGu1W58OG3NVuDtkMWyC6nIT4qs=

APP_URL=http://www.example.com

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=ucenter_example

DB_USERNAME=root

DB_PASSWORD=root

CACHE_DRIVER=file

SESSION_DRIVER=file

QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1

REDIS_PASSWORD=null

REDIS_PORT=6379

MAIL_DRIVER=smtp

MAIL_HOST=mailtrap.io

MAIL_PORT=2525

MAIL_USERNAME=null

MAIL_PASSWORD=null

MAIL_ENCRYPTION=null

2.创建用户控制器,编写测试登录代码。

artisan:

php artisan make:controller UserController

同样也可以手工进行创建文件:/app/Http/Controllers/UserController.php

文件内容如下:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

use Auth;

class UserController extends Controller

{

//

public function login(){

$username = request()->get('username');

$password = request()->get('password');

//验证账号密码,postdata数据key为数据库存储字段名。

$postdata = ['user_name' => $username, 'user_pass'=>$password];

$ret = Auth::attempt($postdata);

if($ret){

return 'success';

}

return $username.$password;

}

}

3.增加路由映射

/app/Http/routes.php

/*

|--------------------------------------------------------------------------

| Application Routes

|--------------------------------------------------------------------------

|

| Here is where you can register all of the routes for an application.

| It's a breeze. Simply tell Laravel the URIs it should respond to

| and give it the controller to call when that URI is requested.

|

*/

Route::get('/', function () {

return view('welcome');

});

Route::get('/login', 'UserController@login');

4.测试进行访问

url:http://www.example.com/login?username=ellermister&password=admin888

002e6fa83a7802140bdca77ae9831016.png

很明显当前Auth验证生成的SQL语句和我们预想的不太一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值