登入功能加上Google reCAPTCHA

閱讀時間約 4 分鐘

這邊練習串接Google reCAPTCHA,簡單介紹Google reCAPTCHA v3。

Google reCAPTCHA v3 是一種幫助網站和應用程序識別和阻止惡意機器人和自動化攻擊,它由 Google 提供,旨在與傳統的 reCAPTCHA v2 不同,reCAPTCHA v3 不需要使用者進行任何可見的驗證碼輸入或互動。它通過分析使用者在網站上的行為來評估使用者的人類或機器人特徵。

接下來就是實作的部分~

建立 reCaptcha V3 帳戶

這一步驟中我們需要設定Google網站金鑰和秘密金鑰。這邊我們必須先透過此連結註冊一個新網站,然後才能使用 Google ReCaptcha,創建完畢後就會取得網站金鑰跟密鑰,而網站金鑰是前端頁面使用,密鑰是後端在 server 使用。

raw-image

設定密鑰至設定檔

在你的環境變數.env檔裡面加入密鑰

RECAPTCHA_SECRET=your_secret_key
RECAPTCHA_SITEKEY=your_site_key
RECAPTCHA_URL=https://www.google.com/recaptcha/api/siteverify


在登入頁面實作 reCaptcha

接下來在原本的login.blade.php頁面加上程式碼,加入 reCAPTCHA 欄位,通常是一個 <script> 元素和一個隱藏的 <input> 欄位。

首先在app.blade.php增加屬於js的模版,方便載入JS檔案

raw-image

接著放置 <script> 元素和一個隱藏的 <input> 欄位

<!-- recaptcha -->
<input type="hidden" name="google_recaptcha_token" id="recaptcha-token">

@section('js')
<script src="https://www.google.com/recaptcha/api.js?render={{env('RECAPTCHA_SITEKEY')}}"></script>
<script>
grecaptcha.ready(function() {
grecaptcha.execute('{{env('RECAPTCHA_SITEKEY')}}').then(function(token) {
$('#recaptcha-token').val(token);
});
});
</script>
@endsection
raw-image

建立middleware處理驗證規則

首先先創建一個middleware 來處理這些request

php artisan make:middleware GoogleRecaptcha
raw-image

登入路由綁定中介層驗證

Route::controller(AuthController::class)->middleware('recaptcha')->group(function () {
Route::post('/login', 'login');
});

最後回到登入頁面,可以看到已經有 reCAPTCHA圖案

raw-image

相關文章參考

https://developers.google.com/search/blog/2018/10/introducing-recaptcha-v3-new-way-to?hl=zh-tw#fighting-bots-your-way

https://developers.google.com/recaptcha/docs/v3?hl=zh-tw#automatically_bind_the_challenge_to_a_button

https://chivincent.net/blog/intergrate-google-recaptcha-enterprise-in-laravel/

15會員
37內容數
學涯無止境,透過每日or每週模仿學習筆記,不管是哪些領域也好,總有一天也可以從菜雞變小雞
留言0
查看全部
發表第一個留言支持創作者!
DDDDD的沙龍 的其他內容
首先先簡單說明 Laravel 中的 Middleware (中介層),Middleware 是一種用於處理 HTTP 請求的機制,它允許你在請求到達應用程序的路由之前或之後執行一些代碼。Middleware 通常用於執行諸如驗證、授權、日誌記錄、修改請求/響應等操作。
本篇純粹紀錄實作流程,以方便未來可以照此版繼續優化改進作法,這篇會使用Laravel 9版本並搭配Boostrap 5來做開發。 發現將每一次的實作作筆記,回頭再看的時候,就可以發現實作差異並進行改正,沒搞懂的底層操作也能在覆盤的時候理解,建議大家都要筆記自己的實作流程。
首先先簡單說明 Laravel 中的 Middleware (中介層),Middleware 是一種用於處理 HTTP 請求的機制,它允許你在請求到達應用程序的路由之前或之後執行一些代碼。Middleware 通常用於執行諸如驗證、授權、日誌記錄、修改請求/響應等操作。
本篇純粹紀錄實作流程,以方便未來可以照此版繼續優化改進作法,這篇會使用Laravel 9版本並搭配Boostrap 5來做開發。 發現將每一次的實作作筆記,回頭再看的時候,就可以發現實作差異並進行改正,沒搞懂的底層操作也能在覆盤的時候理解,建議大家都要筆記自己的實作流程。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
有些時候 iOS 系統都會有些文字字串 Bug 錯誤, 最近又有安全研究人員發現 iPhone 最新的字元錯誤能導致設備直接死當崩潰, 只要透過搜尋或App資料庫輸入一串文字後, 不管是最新 iOS 17、iOS 18 Beta 或 iOS 18.1 測試版系統都會受影響。 突發Bug
Thumbnail
《登入無盡島》是一部有意思的遊戲紀錄片,法國團隊與導演在疫情這幾年裡在一款開放世界遊戲中沉浸963小時,藉由與裡面玩家和團體的接觸與觀察,探索關於他們玩這款遊戲的意義,在虛構遊戲世界裡是逃避真實世界,還是另一種人生與人際相處 ?並且注意到在開放世界裡除了遊戲殺戮外,玩家似乎有另一種遊戲的觀感體驗。
Thumbnail
這篇教學主要介紹瞭如何在遊戲中設置連續登入獎勵的方法,包括建立變量、加入時間、計算登入和連續登入次數,以及顯示和執行連續登入獎勵的具體方法。
Thumbnail
前陣子世界經典棒球賽,每一場中華隊的賽事,都讓人看得熱血沸騰,有時覺得,在電視機前場邊觀戰喊加油,還真不過癮呢!好不容易投手解決掉對方強打,短暫離開趕緊衝去廁所,不久後再趕緊回來關心賽事。沒錯,比賽正緊張之際,連大氣都不敢喘一口,忍到一個段落稍微離開一下,總是要「再登入」。
Thumbnail
祭如在 人生 誰說不是場催眠大夢 賦予意義的 是
Thumbnail
張蔓莎沒有加上任何Vocal Effect的聲線,顯得跟電子的編曲格格不入…是代表著我,原來從來也不屬於這裡嗎?代表我跟你,根本不應該連接上嗎?
Thumbnail
一個APP在規劃的時候可能覺得主要功能就只有這一兩個,實作起來應該不難,卻忘了現代人的胃口已經越養越大,很多不在你預期內但對於使用者來說卻是很基本的功能;另一種是商店上架或是第三方要求的必要功能。今天我們來探討第三種必要功能:OAuth登入。
Thumbnail
展期|2022.8.03-2022.10.23 地點| 高雄港港史館 官網|https://twdesign.tw/exhibition-view/3 主辦單位 | 高雄市政府文化局 策展統籌|駁二藝術特區 策展單位|樸實創意、中間研究室 策展人|許哲瑜、郭中元 統籌企劃|秦安慧、薛佩姍
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
有些時候 iOS 系統都會有些文字字串 Bug 錯誤, 最近又有安全研究人員發現 iPhone 最新的字元錯誤能導致設備直接死當崩潰, 只要透過搜尋或App資料庫輸入一串文字後, 不管是最新 iOS 17、iOS 18 Beta 或 iOS 18.1 測試版系統都會受影響。 突發Bug
Thumbnail
《登入無盡島》是一部有意思的遊戲紀錄片,法國團隊與導演在疫情這幾年裡在一款開放世界遊戲中沉浸963小時,藉由與裡面玩家和團體的接觸與觀察,探索關於他們玩這款遊戲的意義,在虛構遊戲世界裡是逃避真實世界,還是另一種人生與人際相處 ?並且注意到在開放世界裡除了遊戲殺戮外,玩家似乎有另一種遊戲的觀感體驗。
Thumbnail
這篇教學主要介紹瞭如何在遊戲中設置連續登入獎勵的方法,包括建立變量、加入時間、計算登入和連續登入次數,以及顯示和執行連續登入獎勵的具體方法。
Thumbnail
前陣子世界經典棒球賽,每一場中華隊的賽事,都讓人看得熱血沸騰,有時覺得,在電視機前場邊觀戰喊加油,還真不過癮呢!好不容易投手解決掉對方強打,短暫離開趕緊衝去廁所,不久後再趕緊回來關心賽事。沒錯,比賽正緊張之際,連大氣都不敢喘一口,忍到一個段落稍微離開一下,總是要「再登入」。
Thumbnail
祭如在 人生 誰說不是場催眠大夢 賦予意義的 是
Thumbnail
張蔓莎沒有加上任何Vocal Effect的聲線,顯得跟電子的編曲格格不入…是代表著我,原來從來也不屬於這裡嗎?代表我跟你,根本不應該連接上嗎?
Thumbnail
一個APP在規劃的時候可能覺得主要功能就只有這一兩個,實作起來應該不難,卻忘了現代人的胃口已經越養越大,很多不在你預期內但對於使用者來說卻是很基本的功能;另一種是商店上架或是第三方要求的必要功能。今天我們來探討第三種必要功能:OAuth登入。
Thumbnail
展期|2022.8.03-2022.10.23 地點| 高雄港港史館 官網|https://twdesign.tw/exhibition-view/3 主辦單位 | 高雄市政府文化局 策展統籌|駁二藝術特區 策展單位|樸實創意、中間研究室 策展人|許哲瑜、郭中元 統籌企劃|秦安慧、薛佩姍