Laravel 53 不同用户表登陆认证Word文件下载.docx

上传人:b****6 文档编号:19635224 上传时间:2023-01-08 格式:DOCX 页数:16 大小:24.90KB
下载 相关 举报
Laravel 53 不同用户表登陆认证Word文件下载.docx_第1页
第1页 / 共16页
Laravel 53 不同用户表登陆认证Word文件下载.docx_第2页
第2页 / 共16页
Laravel 53 不同用户表登陆认证Word文件下载.docx_第3页
第3页 / 共16页
Laravel 53 不同用户表登陆认证Word文件下载.docx_第4页
第4页 / 共16页
Laravel 53 不同用户表登陆认证Word文件下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

Laravel 53 不同用户表登陆认证Word文件下载.docx

《Laravel 53 不同用户表登陆认证Word文件下载.docx》由会员分享,可在线阅读,更多相关《Laravel 53 不同用户表登陆认证Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。

Laravel 53 不同用户表登陆认证Word文件下载.docx

创建后台管理员模型

我们再创建一个Admin模型,用于后台管理员登陆验证。

modelAdmin-m

-m参数会同时生成数据库迁移文件xxxx_create_admins_table

修改app/Admin.php模型文件

<

?

php

namespaceApp;

useIlluminate\Notifications\Notifiable;

useIlluminate\Foundation\Auth\UserasAuthenticatable;

classAdminextendsAuthenticatable

{

useNotifiable;

/**

*Theattributesthataremassassignable.

*

*@vararray

*/

protected$fillable=[

name'

'

password'

];

*Theattributesthatshouldbehiddenforarrays.

protected$hidden=[

remember_token'

}

编辑xxxx_create_admins_table文件,后台管理员模型结构与前台用户差不多,去掉email字段,name字段设为unique

useIlluminate\Support\Facades\Schema;

useIlluminate\Database\Schema\Blueprint;

useIlluminate\Database\Migrations\Migration;

classCreateAdminsTableextendsMigration

*Runthemigrations.

*@returnvoid

publicfunctionup()

{

Schema:

create('

function(Blueprint$table){

$table->

increments('

id'

);

string('

)->

unique();

rememberToken();

timestamps();

});

}

*Reversethemigrations.

publicfunctiondown()

dropIfExists('

管理员模型填充数据

定义一个数据模型工厂,在database/factories/ModelFactory.php中添加如下代码

$factory->

define(App\Admin:

class,function(Faker\Generator$faker){

static$password;

return[

$faker->

firstName,

$password?

$password=bcrypt('

secret'

),

str_random(10),

});

使用Faker随机填充用户名

在database/seeds目录下生成AdminsTableSeeder.php文件。

seederAdminsTableSeeder

编辑database/seeds/AdminsTableSeeder.php文件的run方法,添加3个管理员用户,密码为123456

publicfunctionrun()

factory('

App\Admin'

3)->

create([

bcrypt('

123456'

]);

在database/seeds/DatabaseSeeder.php的run方法里调用AdminsTableSeeder类

$this->

call(AdminsTableSeeder:

class);

执行数据库迁移命令

phpartisanmigrate--seed

数据库里会创建admins表,并且生成了3条数据

创建后台页面

创建控制器

controllerAdmin/LoginController

controllerAdmin/IndexController

其中,Admin/LoginController负责登陆逻辑;

Admin/IndexController管理登陆后的首页。

编辑Admin/LoginController.php

namespaceApp\Http\Controllers\Admin;

useApp\Http\Controllers\Controller;

useIlluminate\Foundation\Auth\AuthenticatesUsers;

classLoginControllerextendsController

/*

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

|LoginController

|

|Thiscontrollerhandlesauthenticatingusersfortheapplicationand

|redirectingthemtoyourhomescreen.Thecontrollerusesatrait

|toconvenientlyprovideitsfunctionalitytoyourapplications.

useAuthenticatesUsers;

*Wheretoredirectusersafterlogin/registration.

*@varstring

protected$redirectTo='

/admin'

;

*Createanewcontrollerinstance.

publicfunction__construct()

middleware('

guest.admin'

['

except'

logout'

]);

*显示后台登陆模板

publicfunctionshowLoginForm()

returnview('

admin.login'

*使用adminguard

protectedfunctionguard()

returnauth()->

guard('

*重写验证时使用的用户名字段

publicfunctionusername()

return'

编辑Admin/IndexController.php

useIlluminate\Http\Request;

useApp\Http\Requests;

classIndexControllerextendsController

*显示后台管理模板首页

publicfunctionindex()

admin.index'

后台显示模板

复制views/layouts/app.blade.php成views/layouts/admin.blade.php

编辑后台管理布局模板

!

DOCTYPEhtml>

htmllang="

en"

>

head>

<

metacharset="

utf-8"

metahttp-equiv="

X-UA-Compatible"

content="

IE=edge"

metaname="

viewport"

width=device-width,initial-scale=1"

--CSRFToken-->

csrf-token"

{{csrf_token()}}"

title>

{{config('

app.name'

Laravel'

)}}-Admin<

/title>

--Styles-->

linkhref="

/css/app.css"

rel="

stylesheet"

--Scripts-->

script>

window.Laravel=<

phpecho[

csrfToken'

csrf_token(),

?

/script>

/head>

body>

navclass="

navbarnavbar-defaultnavbar-static-top"

divclass="

container"

navbar-header"

--CollapsedHamburger-->

buttontype="

button"

class="

navbar-togglecollapsed"

data-toggle="

collapse"

data-target="

#app-navbar-collapse"

spanclass="

sr-only"

ToggleNavigation<

/span>

icon-bar"

/button>

--BrandingImage-->

aclass="

navbar-brand"

href="

{{url('

/'

)}}"

{{config('

)}}

/a>

/div>

collapsenavbar-collapse"

id="

app-navbar-collapse"

--LeftSideOfNavbar-->

ulclass="

navnavbar-nav"

&

nbsp;

/ul>

--RightSideOfNavbar-->

navnavbar-navnavbar-right"

--AuthenticationLinks-->

@if(auth()->

guest())

li>

ahref="

/admin/login'

Login<

/li>

@else

liclass="

dropdown"

#"

dropdown-toggle"

role="

aria-expanded="

false"

{{Auth:

user()->

name}}<

caret"

dropdown-menu"

menu"

/logout'

onclick="

event.preventDefault();

document.getElementById('

logout-form'

).submit();

"

Logout

formid="

logout-form"

action="

method="

POST"

style="

display:

none;

{{csrf_field()}}

/form>

@endif

/nav>

@yield('

content'

scriptsrc="

/js/app.js"

/body>

/html>

复制views/auth/login.blade.php成views/admin/login.blade.php

编辑该模板,更改布局文件为layouts.admin,把表单的提交url改为admin/login,email字段改成name字段,去掉找回密码的部分

@extends('

layouts.admin'

@section('

row"

col-md-8col-md-offset-2"

panelpanel-default"

panel-heading"

AdminLogin<

panel-body"

formclass="

form-horizontal"

form"

form-group{{$errors->

has('

)?

has-error'

:

'

}}"

labelfor="

name"

col-md-4control-label"

Name<

/label>

col-md-6"

inputid="

type="

text"

form-control"

name="

value="

{{old('

requiredautofocus>

@if($errors->

))

help-block"

strong>

{{$errors->

first('

)}}<

/strong>

password"

Password<

required>

form-group"

col-md-6col-md-offset-4"

checkbox"

label>

inputtype="

remember"

RememberMe

col-md-8col-md-offset-4"

submit"

btnbtn-primary"

Login

@endsection

复制views/home.blade.php成views/admins/index.blade.php

编辑该模板

Dashboard<

Youareloggedinadmindashboard!

添加后台路由

编辑routes/web.php,添加以下内容

Route:

group(['

prefix'

],function(){

Route:

middleware'

auth.admin'

get('

Admin\IexController@index'

login'

Admin\LoginController@showLoginForm'

name('

post('

Admin\LoginController@login'

Admin\LoginController@logout'

后台管理认证中间件

创建后台管理认证中间件

middlewareAuthAdmin

编辑AuthAdmin

namespaceApp\Http\Middleware;

useClosure;

classAuthAdmin

*Handleanincomingrequest.

*@param\Illuminate\Http\Request$request

*@param\Closure$next

*@returnmixed

publicfunctionhandle($request,Closure$next)

if(auth()->

guest()){

if($request->

ajax()||$request->

wantsJson()){

returnresponse('

Unauthorized.'

401);

}else{

returnredirect()->

guest('

admin/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1