php的loginservice,laravel自定义后台登录

1. 创建后台用户模型和数据表

php artisan make:model Models/Admin -m

2. 设置表字段

public function up()

{

Schema::create('admins', function (Blueprint $table) {

$table->bigIncrements('id');

$table->string('name',100)->comment('用户名');

$table->string('email',100)->comment('邮箱');

$table->string('password',100)->comment('密码');

$table->timestamp('email_verified_at')->nullable();

$table->rememberToken();

$table->timestamps();

});

}

3. 填充数据表 AdminsTableSeeder.php

public function run()

{

DB::table('admins')->insert([

'name' => 'admin',

'email' => '1065628795@qq.com',

'password' => bcrypt('123456'),

]);

}

4. 新建后端路由 admin.php

Route::get('admin/login', 'Admin\LoginController@getLogin')->name('admin.login');

Route::post('admin/login', 'Admin\LoginController@postLogin');

Route::get('admin/logout', 'Admin\LoginController@logout');

5. 修改app/Providers/RouteServiceProvider.php

public function map()

{

$this->mapApiRoutes();

$this->mapWebRoutes();

$this->mapAdminRoutes();

//

}

...

protected function mapAdminRoutes()

{

Route::middleware('web')

->namespace($this->namespace)

->group(base_path('routes/admin.php'));

}

6. 修改config/auth.php

'guards' => [

'web' => [

'driver' => 'session',

'provider' => 'users',

],

'admin' => [

'driver' => 'session',

'provider' => 'admins',

],

'api' => [

'driver' => 'token',

'provider' => 'users',

'hash' => false,

],

],

...

'providers' => [

'users' => [

'driver' => 'eloquent',

'model' => App\Models\User::class,

],

'admins' => [

'driver' => 'eloquent',

'model' => App\Models\Admin::class,

],

// 'users' => [

// 'driver' => 'database',

// 'table' => 'users',

// ],

],

7. 登录控制器 LoginController

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends AdminController

{

/**

* 设置成功登录后转向的页面:

*

* @var string

*/

public $redirectPath = 'admin.index';

/**

* 设置退出登录后转向的页面

*

* @var string

*/

protected $redirectAfterLogout = 'admin/login';

/*

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

| Registration & Login Controller

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

|

| This controller handles the registration of new users, as well as the

| authentication of existing users. By default, this controller uses

| a simple trait to add these behaviors. Why don't you explore it?

|

*/

use AuthenticatesUsers;

/**

* Create a new authentication controller instance.

*

* @return void

*/

public function __construct()

{

$this->middleware('guest:admin', ['except' => 'logout']);

}

/**

* Show the application login form.

*

* @return \Illuminate\Http\Response

*/

public function getLogin()

{

return view('admin.login');

}

/**

* Handle a login request to the application.

*

* @param \Illuminate\Http\Request $request

*

* @return \Illuminate\Http\Response

*/

public function postLogin(Request $request)

{

$field = filter_var($request->input('username'), FILTER_VALIDATE_EMAIL) ? 'email' : 'username';

$request->request->add([$field => $request->input('username')]);

$credentials = $request->only($field, 'password');

if (auth('admin')->attempt($credentials, $request->has('remember'))) {

return redirect()->intended(route($this->redirectPath));

}

return redirect('admin/login')->withInput()->withErrors([$this->username() => [trans('auth.failed')]], 'login');

}

/**

* Log the user out of the application.

*

* @return \Illuminate\Http\Response

*/

public function logout()

{

auth('admin')->logout();

return redirect($this->redirectAfterLogout);

}

}

8. 登录页面 login.blade.php

{{ csrf_field() }}

登录

9. 页面提示信息展示以及后台登录成功用户名信息展示 message.blade.php

@if(session()->has("errormsg"))

{{ session("errormsg") }}.

@endif

//用户信息展示

{{ auth()->user()->name }}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值