Laravel 系統版本查看及artisan管理員密碼找回方法針對各個版本通用方法及原理-優雅草卓伊凡

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庫實現中文情感分析 視頻在線地址&…