[Laravel] 8.x 自定義會員登入功能


使用者登入功能

自定義

1.新增 Middleware
2.修改 Kernel
3.route 綁定 middleware
4.修改 Session 的存活時間 (可略)
5.修改 "記住我" Cookie 的過期時間 (可略)
Laravel 8 custom authentication | part one
Laravel 8 custom authentication | part two
[Laravel] 如何設定 Session 的存活時間 與 當關閉瀏覽器時 清除 Session
教你修改 Laravel "記住我" Cookie 的過期時間

使用內建

Laravel Auth: 為網站加入會員囉~
用戶認證
使用者登入的功能摘要
Laravel內建註冊&登入機制
Auth in Laravel 8: Fortify and Laravel UI (without Jetstream)
Laravel 的使用者登入 (一) 實作步驟

登入畫面加入「驗證碼」的方法

手動安裝 mews captcha

1. 下載擴展 GitHub 驗證碼包:Mews Captcha Package,存放到專案目錄 vendor
2. 修改專案根目錄 composer.json 文件,添加
"require": {
	...
	"mews/captcha": "^3.2"
},
"minimum-stability": "dev",

當你執行指令 composer require mews/captcha
└ vendor 底下會自動生成「mews」資料夾
└ composer.json 會自動添加以上內容

3. 找到 config/app.php 文件,添加:
'providers' => [
	...
	Mews\Captcha\CaptchaServiceProvider::class,
], 
'aliases' => [
	...
    'Captcha' => Mews\Captcha\Facades\Captcha::class,
]

4. 新建 config/captcha.php 文件 (等同下指令 php artisan vendor:publish)
Laravel-5.1驗證碼 mews captcha
Laravel 8 Captcha Code Tutorial
Create Captcha in Laravel - Laravel 8 Tutorial
【擴展推薦】mews/captcha 圖片驗證碼解決方案
laravel 使用mews/captcha驗證碼
How to Create Captcha in Advance Laravel
Adding Google ReCaptcha to forms in Laravel

google reCAPTCHA

1. 前往 https://www.google.com/recaptcha/admin 來獲取一個網站金鑰與密鑰
2. 根據 文件教學,引用 JS 檔,及畫面添加 HTML 碼
3. 根據 文件教學,表單傳送後,通過密鑰來驗證提交
4. 完整教學,詳見 reCAPTCHA Implementation in Laravel 8 PHP, without a package
Laravel 生產實踐:為個人網站配置谷歌 reCAPTCHA 身份驗證系統
如何整合“No CAPTCHA reCAPTCHA”(驗證碼)到你的網站裡

登入畫面加入「記住我」的方法 1. 如果你的用戶名表格,不叫做 users,請更改 app\Models\User.php 添加
public $table = "自訂的用戶表格名";
protected $primaryKey = '自訂的用戶表格名主鍵';

2. 如果你的用戶名表格的密碼欄位,不叫做 password,請更改 app\Models\User.php 添加
public function getAuthPassword() {
    return $this->自訂的密碼欄位名;
} 

3. 自訂的用戶表格名添加欄位「remember_token」,字串長度 100
在開始之前,請先確認您的 users (或其他同義) 資料表包含一個名為 remember_token 的欄位,欄寬 100 字元、字串型態、可接受 null。這個欄位將會被用來儲存「記住我」的 session token。Laravel 認證與安全性

4. 認證一個使用者,並且「記住」他
假如您想要在您的應用程式內提供「記住我」的選項,您可以在 attempt 方法的第二個參數給 true 值,這樣就可以永久保留這個用戶的登錄狀態,直到他手動登出為止。當然,您的 users 資料表必需包括一個字串型態的 remember_token 欄位來儲存「記住我」的標記。
if (Auth::attempt(array('email' => $email, 'password' => $password), true))
{
    // The user is being remembered...
} 

Auth::attempt() failed for custom database fields.
Laravel auth attempt not working or returning false always?
Laravel: How can I change the default Auth Password field name?
How to implement Remember me in Laravel 8?
Remember logged in Laravel 8.X | Dashboard V13
Laravel '記住我' 功能實現
Laravel: What is “remember_token” in the “users” DB table?

資料驗證錯誤訊息中文化的方法 1. 修改專案路徑下的檔案 config/app.php,將 locale、fallback_locale、faker_locale 修改為繁體中文「zh_TW」。
2. 下載繁體中文語言包 Laravel-lang
3. 下載回來 src 資料夾裡面有各式各樣的翻譯,把「zh_TW 資料夾」複製到專案路徑下的 resources/lang 的資料夾中。
4. 在專案底下執行指令清除config
php artisan config:cache
php artisan cache:clear
php artisan view:clear
5. resources/lang/zh_TW/validation.php 自定義 attributes
驗證資料格式、設定系統語系
Laravel 8 Custom Validation Error Messages Tutorial

表單提交後,表單上提示錯誤訊息,並保留原輸入值How to Keep value of selected option after form submission
Retain old form data on validation error in Laravel
Laravel Forms And Validation Rules With Example
Laravel 8 Custom Validation Rules Example (php artisan make:rule)
Laravel tip #8: Custom validation rule with a parameter (rule 帶參數)
Laravel custom validation rule refering to other request params (rule 自訂錯誤訊息)
If statement within form input value
Passing variable with route parameter when form is submitted Laravel 5.2
Day22 laravel Validation 驗證格式
How to show old data of dynamic checkbox in Laravel? (checkbox 多選)
Day22 laravel Validation 驗證格式

縣市與鄉鎮連動的方法
Laravel Dynamic Dependent Dropdown using Ajax
Laravel Forms: Select Dependent Dropdowns with jQuery and AJAX

連線資料庫Database: Getting Started
Laravel 5.3 - Clear config cache in shared hosting
Laravel query with “if” conditions?
Laravel Wherein Query Example
Laravel 學習筆記(15) - 資料庫之 Query Builder

Laravel 設定時區 1. 修改專案路徑下的檔案 config/app.php,將 timezone 修改為台灣「Asia/Taipei」。
[轉][Laravel] Laravel 5.4 設定時區
[程式設計]解決PHP中UTC時區時間錯誤問題

網路作品Setting selected option in Laravel 8 form edit | #16
QuickAdminPanel Demo 2021
Laravel: How To Create Your Own Custom Validation Rule
laravel 8 crud step by step (學生資料,對資料庫進行查詢/新增/修改/刪除)

Laravel 自定義 404 Error Page 不想讓 user 看到 laravel 預設的 error page。當 user 輸入一個不存在的網址,或嘗試用 GET 直接訪問 method 為 post 的 route,都可以全部 redirect 404

1. 在 resources/views 路徑下,新建 「errors」 資料夾,並新增「404.blade.php」檔案
laravel route設定post後如何避免用戶直接訪問此url
How to Create Custom 404 Page in Laravel 8 Application


Image Source

Laravel 8 Captcha Example Tutorial: How to Add Captcha in Laravel

沒有留言:

技術提供:Blogger.