项目第四天:登陆 退出
# log
## laravel 定义的auth
1.项目中执行artisan命令生成auth模块
php artisan make:auth
框架自动生成 HomeController.php home.blade.php 及views/auth/ , views/layouts/ ,Http/Controllers/Auth ,并在web.php中添加路由
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
2.数据库中新建表users 包括字段 id name password email updated_at created_at remember_token 即可完成项目的注册 登陆 退出
## 开发者自定义登陆 注册模块
后台登陆链接(管理员进入后台时 中间件会判断是否登陆 如果没有登陆 则跳到登录页)
return redirect('admin/login');
web.php
Route::get('/admin/login','Admin\LoginController@login');
login.blade.php
return view("admin.login");
admin/login.blade.php
<form action="/admin/dologin" method="post">
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>"> //laravel自带的安全验证
账号:<input type="text" placeholder="zhanghao" name="name"/><br/>
密码:<input type="password" placeholder="password" name="password"><br/><br/>
验证码:<input type="text" name="mycode"/>
<img src="/admin/getcode" onclick="this.src='{{url('/admin/getcode')}}?id='+Math.random();" width="100" height="34"/>
<button type='submit'> 登陆 </button>
</form>
>PS:验证码的生成要引用第三方类 composer.json 中require "gregwar/captcha": "^1.1",
>
>loginController.php 中 use Gregwar\Captcha\CaptchaBuilder;
$builder = new CaptchaBuilder();
$builder->build(150,32);
\Session::put('phrase',$builder->getPhrase()); //存储验证码
return response($builder->output())->header('Content-type','image/jpeg');
web.php
Route::post('/admin/dologin','Admin\LoginController@doLogin');
login.Controller.php
$mycode = $request->input("mycode");
$yanzhengma = $request->session()->get('phrase');
if($mycode !== $yanzhengma){
return back();
}
$name=$request->input("name");
$password=$request->input("password");
$user=\DB::table('mylog_user')->where("name",$name)->first();
if(!empty($user)){
if($password==$user->password){
session()->put("adminuser",$user); //5.4用put方法代替set方法
return redirect("/admin");
}
}
return back();
后台退出
<a href='/admin/logout'>退出</a>
web.php
Route::get('/admin/logout','Admin\LoginController@logout');
loginController.php
$request->session()->forget('adminuser');
return redirect("/admin/login");
浙公网安备 33010602011771号