Laravel 系统版本查看及artisan管理员密码找回方法针对各个版本通用方法及原理-优雅草卓伊凡

一、查看 Laravel 版本的方法

优雅草蜻蜓T会议系统专业版 最近又有客户要了,但是发现 密码不对 管理员账户密码不对,卓伊凡必须处理下,这里顺便讲解密码原理

1. 通过命令行查看(最准确)

php artisan --version
# 示例输出:Laravel Framework 10.10.0

我输出 版本 又遇到 问题了,不过已经解决

Laravel Framework 8.83.27
我们的版本是8

其实确实算比较新了,

2. 通过 composer.json 文件查看

cat composer.json | grep laravel/framework
# 示例输出:"laravel/framework": "^10.0"

看了看composer.json
没问题 首任主程 写的很好

没问题 除了版本没写 其他依赖都有 能看到 也利于维护

3. 通过 PHP 代码查看

// 在路由或控制器中添加
Route::get('/version', function() {return app()->version();
});
// 访问 /version 即可看到

二、不同 Laravel 版本找回 admin 密码的方法

通用方法(适用于所有版本)

方法1:使用 Tinker 重置密码
php artisan tinker# 在 tinker 中执行:
$user = App\Models\User::where('email', 'admin@example.com')->first();
$user->password = Hash::make('new_password');
$user->save();

不过这里要改改 我们字段是username 然后是admin

$user = App\Models\User::where(‘username’, ‘admin’)->first();
$user->password = Hash::make(‘密码’);
$user->save();

因此应该这样执行,这里脱敏我写的密码

提示我是未知字段,失败了,

方法2:数据库直接更新
UPDATE users SET password = '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi' WHERE email = 'admin@example.com';
# 上面密码对应明文是 "password"

这个方法 应该可行性高一些,

版本特定方法

Laravel 5.x - 7.x
php artisan make:command ResetAdminPassword

然后在生成的命令文件中:

public function handle()
{$user = User::where('email', 'admin@example.com')->first();$user->password = bcrypt('new_password');$user->save();$this->info('Password reset successfully!');
}
Laravel 8.x 及以上
php artisan make:command ResetAdminPassword

命令文件内容:

public function handle()
{$user = \App\Models\User::where('email', 'admin@example.com')->first();$user->forceFill(['password' => \Illuminate\Support\Facades\Hash::make('new_password')])->save();$this->info('Password reset successfully!');
}

刚刚我们已经看过我们的版本是8了 所以我们用这个方法应该才是最可靠的

根据情况 我们创建应该是

在 Laravel 项目中,使用 php artisan make:command ResetAdminPassword 生成的命令文件默认会存放在以下路径:

标准路径

app/Console/Commands/ResetAdminPassword.php

详细说明

  1. 文件完整路径结构
your-project/├── app/│   ├── Console/│   │   ├── Commands/│   │   │   └── ResetAdminPassword.php  ← 这就是生成的文件│   │   └── Kernel.php
  1. 文件内容示例
    生成的 ResetAdminPassword.php 会包含类似这样的基础结构:
<?phpnamespace App\Console\Commands;use Illuminate\Console\Command;class ResetAdminPassword extends Command
{protected $signature = 'command:name';protected $description = 'Command description';public function __construct(){parent::__construct();}public function handle(){// 命令逻辑代码}
}
  1. 如何验证文件是否存在
    • 命令行方式:
ls app/Console/Commands/ResetAdminPassword.php
    • 或使用PHP检查:
php -r "echo file_exists('app/Console/Commands/ResetAdminPassword.php') ? '存在' : '不存在';"
  1. 如果找不到文件
    • 检查是否在项目根目录执行命令
    • 运行 composer dump-autoload 重新生成自动加载
    • 检查 app/Console/Commands/ 目录是否存在
  1. 注册命令
    生成后需要在 app/Console/Kernel.php$commands 数组中添加:
protected $commands = [Commands\ResetAdminPassword::class,
];
  1. 使用命令
    注册后可以通过以下方式执行:
php artisan list  # 查看可用命令
php artisan your:command-name  # 执行你的命令

提示:如果你自定义了 Laravel 的目录结构,文件可能会出现在你配置的对应路径中,可以通过检查 composer.jsonautoload.psr-4 配置确认实际路径。

我们打开查看到原始内容

修改成我们的内容

public function handle()
{
$user = \App\Models\User::where(‘username’, ‘admin’)->first();
$user->forceFill([
‘password’ => \Illuminate\Support\Facades\Hash::make(‘123456’)
])->save();
$this->info(‘Password reset successfully!’);
}

默认改123456

验证命令签名

打开 ResetAdminPassword.php 文件,检查 $signature

protected $signature = ‘admin:reset-password’;

注册命令

在 app/Console/Kernel.php 中添加:

那么我执行命令为
php artisan admin:reset-password

这样就可以重置密码

完整重置密码,nice!卓伊凡!

使用 Laravel Breeze/Jetstream 的情况

Laravel 8+ 使用 Jetstream
php artisan tinker
$user = \App\Models\User::where('email', 'admin@example.com')->first();
$user->forceFill(['password' => \Illuminate\Support\Facades\Hash::make('new_password')])->save();
Laravel 8+ 使用 Sanctum
php artisan tinker
$user = \App\Models\User::find(1);
$user->password = \Illuminate\Support\Facades\Hash::make('new_password');
$user->save();

三、预防措施

  1. 创建密码重置命令
php artisan make:command ResetPasswordCommand
  1. 添加管理员种子用户
// 在 DatabaseSeeder.php
User::create(['name' => 'Admin','email' => 'admin@example.com','password' => Hash::make('temp_password'),'is_admin' => true
]);
  1. 设置密码过期策略(Laravel 8+):
// 在 AppServiceProvider.php
\Illuminate\Auth\Passwords\PasswordBrokerManager::macro('setDefaultPasswordTimeout', function($timeout) {config(['auth.passwords.users.expire' => $timeout]);
});

四、安全建议

  1. 重置后立即修改临时密码
  2. 使用强密码生成器:
use Illuminate\Support\Str;
$password = Str::password(12); // Laravel 9+
  1. 考虑使用双重认证
  2. 定期轮换管理员密码

以上方法覆盖了从 Laravel 5.x 到最新版本的管理员密码找回需求

整体来说 laravel 真的 很安全的了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915489.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915489.shtml
英文地址,请注明出处:http://en.pswp.cn/news/915489.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

针对大规模语言模型的上下文工程技术调研与总结(翻译并摘要)

针对大规模语言模型的上下文工程技术调研与总结声明摘要部分翻译介绍部分翻译相关工作部分翻译并摘要为什么使用上下文工程&#xff08;翻译并摘要&#xff09;基础组件&#xff08;翻译并摘要&#xff09;RAG&#xff08;翻译并摘要简单介绍一下个人认为比较好的技术&#xff…

QT配置Quazip外部库

1.下载QuaZip源码网址&#xff1a;https://sourceforge.net/projects/quazip/  注&#xff1a;下载->解压->打开.pro文件2.编译QuaZip源码2.1配置zlib注&#xff1a;QuaZip需zlib的支持&#xff0c;我们需要引用zlib找到本地安装Qt目录下zlib目录&#xff1a;注&#x…

从C++开始的编程生活(4)——类的定义、访问限定符、类域、类的实例化和this指针

前言 本系列文章承接C语言的学习&#xff0c;需要有C语言的基础才能学会哦~ 第3篇主要讲的是有关于C的类的定义、访问限定符、类域、类的实例化和this指针。 C才起步&#xff0c;都很简单呢&#xff01; 目录 前言 类 基本语法 访问限定符 基本语法 类域 类的实例化 内…

AD域控制器虚拟化的安全加固最佳实践

以下是AD域控制器虚拟化安全加固的7项核心实践&#xff0c;结合最新Windows Server 2022特性与虚拟化环境需求&#xff1a;基础架构强化‌ 采用静态IP分配并确保所有域控节点DNS指向主DC&#xff08;如192.168.1.10&#xff09;‌ 虚拟机模板需预配置林/域功能级别为Windows Se…

java解析nc气象数据

1.1pom.xml<dependency><groupId>edu.ucar</groupId><artifactId>netcdfAll</artifactId><version>5.4.1</version></dependency>1.2 netcdf使用/** param type 0 ,1, 2 wind 1 or 2 其他 0 .* return Map* */public Map i…

STC8H8K64U SKDIP28芯片频率占空比PWM波形

/****PWM输出任意周期占空比波形*******/ #include "STC8H.h" // #include "intrins.h" // #define uchar unsigned char // #define uint unsig…

【RK3576】【Android14】USB开发调试

获取更多相关的【RK3576】【Android14】驱动开发&#xff0c;可收藏系列博文&#xff0c;持续更新中&#xff1a; 【RK3576】Android 14 驱动开发实战指南 硬件接口 RK3576支持两个USB3.0控制器 驱动开发 dts配置 在“Android14/kernel-6.1/arch/arm64/boot/dts/rockchip/rk…

20. TaskExecutor与ResourceManager心跳

20. TaskExecutor与ResourceManager心跳 现在&#xff0c;需要回过头看 ResourceManager是如何产生心跳管理服务的。cluster.initializeServices 方法的 heartbeatServices createHeartbeatServices(configuration);产生一个 HeartbeatServicesImpljobmanager的 resourceManag…

OS19.【Linux】进程状态(上)

目录 1.情景引入 2.操作系统学科对进程状态的分类 运行状态 基于时间片的轮转调度算法 阻塞状态 等待IO设备的例子 等待其他进程中需要获取的数据 进程唤醒 挂起状态(全称为阻塞挂起状态) 简单谈谈虚拟内存管理 就绪状态 笔面试题 3.Linux对进程状态的分类 R和S状…

如何优雅地修改项目的 Android 版本(API 级别)

引言 在 Android 开发的日常迭代中&#xff0c;我们经常需要升级或降级项目的 minSdkVersion、targetSdkVersion 与 compileSdkVersion。升级可以解锁新特性和性能优化&#xff1b;降级则可能为了兼容旧机型或快速验证问题。本文将手把手演示在 Android Studio 里修改 Android …

GNU Radio多类信号多种参数数据集生成技巧

参考我的这篇博客&#xff0c;我想自制一个多信号数据集&#xff1a; 【多雷达信号硬件模拟】 3台USRP1台VSG信号发生器模拟多雷达信号&#xff0c;1台USRP产生高斯噪声模拟更多信道环境&#xff0c;1台USRP采集信号 需要在多个波段对四种信号进行参数设置&#xff0c;带宽有…

Ansible + Shell 服务器巡检脚本

脚本概述这是一个用于服务器日常巡检的 Shell 脚本&#xff0c;主要功能包括&#xff1a;检查多台主机的网络连通性 监控CPU、内存和磁盘使用率 生成详细的巡检报告 通过企业微信发送告警通知核心技术点1. 主机批量管理使用Ansible工具远程执行命令和脚本 通过主机…

Linux-rpm和yum

一、RPMRPM&#xff08;Red Hat Package Manager&#xff09;是一个用于管理 Red Hat 系列 Linux 发行版&#xff08;如 RHEL、CentOS、Fedora&#xff09;软件包的工具。RPM 允许用户以统一的格式来安装、卸载、升级和查询软件包。它是 .rpm 文件的主要工具&#xff0c;后缀名…

手推OpenGL相机的正交投影矩阵和透视投影矩阵(附源码)

概述计算OpenGL的正交投影矩阵和透视投影矩阵是有现成函数的。自己手推不是为了重复造轮子。手推一遍&#xff0c;可以极大的加强对这两个矩阵的理解。同时也可以满足一下自己求知欲。正交投影矩阵手推正交投影矩阵源码 WGMatrix4x4 WGMatrix4x4::BuildOrtho(double l, double …

【跨国数仓迁移最佳实践2】MaxCompute SQL执行引擎对复杂类型处理全面重构,保障客户从BigQuery平滑迁移

本系列文章将围绕东南亚头部科技集团的真实迁移历程展开&#xff0c;逐步拆解 BigQuery 迁移至 MaxCompute 过程中的关键挑战与技术创新。本篇为第二篇&#xff0c;跨国数仓迁移背后 MaxCompute 的统一存储格式创新。 注&#xff1a;客户背景为东南亚头部科技集团&#xff0c;…

react(基础篇)

React由Meta公司研发&#xff0c;用于构建Web和原生交互界面的库。 React 官方中文文档 查看JSX &#xff08;一&#xff09;React组件 用户界面的一部分&#xff0c;通俗的来讲&#xff0c;最小的元素组成的单元&#xff0c;可以实现部分逻辑与功能 房子的门就可以看成一个…

数据结构-哈希表(一)哈希函数、哈希表介绍、优缺点

哈希表 哈希函数哈希表使用了哈希函数来完成key到地址的快速映射&#xff0c;所以在了解哈希表之前&#xff0c;需要先明白哈希函数的概念和特点。 哈希函数的定义 哈希函数 哈希函数是一种将任意长度输入的数据&#xff0c;转换成固定长度输出的算法哈希函数H可以表示为yH(x) …

Shader开发(一)什么是渲染

前言在现代游戏开发和计算机图形学领域&#xff0c;渲染技术是连接虚拟世界与视觉呈现的关键桥梁。无论你是刚接触图形编程的新手&#xff0c;还是希望深入理解渲染原理的开发者&#xff0c;掌握渲染的核心概念都是必不可少的第一步。什么是渲染&#xff1f;渲染&#xff08;Re…

策略模式+工厂模式(案例实践易懂版)

最近,可以说这2025年度,自己更文的次数都大大减少,主要最近大环境不景气,自己职业也受到波及,学习的东西也是因为AI而变得更多, 没办法,你不学,总有人会学,关于AI的我也准备出个专辑,相信绝对帮助到大家 额,好像说多了,言归正传,我们看一下今天的主题:策略模式工厂模式 本文主要…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - snowNLP库实现中文情感分析

大家好&#xff0c;我是java1234_小锋老师&#xff0c;最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程&#xff0c;持续更新中&#xff0c;计划月底更新完&#xff0c;感谢支持。今天讲解snowNLP库实现中文情感分析 视频在线地址&…