laravel-admin 自定义登陆逻辑,补充原有账号密码登录

laravel-admin自定义登录 / 登陆

前提

如果需要使用自定义登录,需要能获取到登录用户的相关信息,然后使用相关信息进行登录。这样可以绕开laravel-admin默认的账号密码登录机制进行登录。

代码

直接上代码吧,代码中我们获取到了用户ID,然后通过用户ID获取到用户信息进行登录。

控制器代码

成功后直接跳转到laravel-admin后台首页,失败返回上一页。

<?php
declare(strict_types=1);

namespace App\Admin\Controllers;


use Encore\Admin\Auth\Database\Administrator;
use Illuminate\Http\Request;
use Encore\Admin\Controllers\AuthController as BaseAuthController;

class LoginController extends BaseAuthController
{
    public function autoLogin (Request $request) {
        $user_id = $request->input("user_id");

        $user = Administrator::where("id", $user_id)->first();
        if ($user) {
            $this->guard()->login($user);
            return redirect()->intended("admin");
        }
        return redirect()->back();
    }

}

路由代码

添加自定义登录路由

<?php

use Illuminate\Routing\Router;

Admin::routes();

Route::group([
    'prefix' => config('admin.route.prefix'),
    'namespace' => config('admin.route.namespace'),
    'middleware' => config('admin.route.middleware'),
    'as' => config('admin.route.prefix') . '.',
], function (Router $router) {
    $router->get("auto-login", "LoginController@autoLogin");
});

配置文件修改

修改config/admin.php中以下代码,添加自定义登录路由权限豁免

        // The URIs that should be excluded from authorization.
        'excepts' => [
            'auto-login',
            'auth/login',
            'auth/logout',
            '_handle_action_',
        ],

这样只需要在访问自定义登录路由的时候将用户ID传过来就可以实现自动登录了:/admin/auto-login?user_id=?

参考

laravel 6 用户认证

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel-Admin 是一个基于 Laravel 开发的后台管理框架,提供了丰富的快速构建后台管理系统所需的功能和组件。其中,自定义页面是 Laravel-Admin 框架中的一个重要特性,可以让开发者基于现有的框架组件构建自己需要的页面。 下面是使用 Laravel-Admin 构建自定义页面的详细步骤: 1. 创建自定义页面路由 在 `routes/admin.php` 文件中添加自定义页面的路由定义,如下所示: ```php Route::get('custom-page', 'CustomController@index'); ``` 2. 创建自定义页面控制器 在 `app/Admin/Controllers` 目录下创建名为 `CustomController.php` 的控制器文件,代码如下: ```php <?php namespace App\Admin\Controllers; use Encore\Admin\Controllers\AdminController; use Encore\Admin\Layout\Content; class CustomController extends AdminController { public function index(Content $content) { return $content ->header('自定义页面') ->description('这是一个自定义页面') ->body(view('admin.custom.index')); } } ``` 其中,`index()` 方法是自定义页面的入口方法,`Content` 类用于定义页面内容,`header()` 方法用于定义页面标题,`description()` 方法用于定义页面描述,`body()` 方法用于设置页面主体内容。 3. 创建自定义页面视图 在 `resources/views/admin/custom` 目录下创建名为 `index.blade.php` 的视图文件,代码如下: ```html @extends('admin::layouts.content') @section('content') <div class="row"> <div class="col-md-12"> <div class="box"> <div class="box-header with-border"> <h3 class="box-title">自定义页面</h3> </div> <div class="box-body"> <p>这是一个自定义页面</p> </div> </div> </div> </div> @stop ``` 其中,`@extends('admin::layouts.content')` 表示该视图继承了 Laravel-Admin 框架提供的布局文件,`@section('content')` 和 `@stop` 之间的内容是页面主体内容。 4. 登录 Laravel-Admin 后台 在浏览器中输入后台管理系统的地址,例如 `http://your-domain/admin`,使用管理员账号和密码登录后台管理系统。 5. 访问自定义页面 在 Laravel-Admin 后台管理系统中,点击左侧菜单栏中的 `自定义页面`,即可访问自定义页面。 至此,我们就成功地基于 Laravel-Admin 后台框架构建了一个简单的自定义页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值