项目第四天:登陆 退出

# 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");
    

posted on 2017-07-05 20:32  yeyu1858  阅读(141)  评论(0)    收藏  举报

导航