登入功能加上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/

13會員
37Content count
學涯無止境,透過每日or每週模仿學習筆記,不管是哪些領域也好,總有一天也可以從菜雞變小雞
留言0
查看全部
發表第一個留言支持創作者!
DDDDD的沙龍 的其他內容
首先先簡單說明 Laravel 中的 Middleware (中介層),Middleware 是一種用於處理 HTTP 請求的機制,它允許你在請求到達應用程序的路由之前或之後執行一些代碼。Middleware 通常用於執行諸如驗證、授權、日誌記錄、修改請求/響應等操作。
本篇純粹紀錄實作流程,以方便未來可以照此版繼續優化改進作法,這篇會使用Laravel 9版本並搭配Boostrap 5來做開發。 發現將每一次的實作作筆記,回頭再看的時候,就可以發現實作差異並進行改正,沒搞懂的底層操作也能在覆盤的時候理解,建議大家都要筆記自己的實作流程。
首先先簡單說明 Laravel 中的 Middleware (中介層),Middleware 是一種用於處理 HTTP 請求的機制,它允許你在請求到達應用程序的路由之前或之後執行一些代碼。Middleware 通常用於執行諸如驗證、授權、日誌記錄、修改請求/響應等操作。
本篇純粹紀錄實作流程,以方便未來可以照此版繼續優化改進作法,這篇會使用Laravel 9版本並搭配Boostrap 5來做開發。 發現將每一次的實作作筆記,回頭再看的時候,就可以發現實作差異並進行改正,沒搞懂的底層操作也能在覆盤的時候理解,建議大家都要筆記自己的實作流程。
你可能也想看
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
前陣子世界經典棒球賽,每一場中華隊的賽事,都讓人看得熱血沸騰,有時覺得,在電視機前場邊觀戰喊加油,還真不過癮呢!好不容易投手解決掉對方強打,短暫離開趕緊衝去廁所,不久後再趕緊回來關心賽事。沒錯,比賽正緊張之際,連大氣都不敢喘一口,忍到一個段落稍微離開一下,總是要「再登入」。
Thumbnail
祭如在 人生 誰說不是場催眠大夢 賦予意義的 是
Thumbnail
張蔓莎沒有加上任何Vocal Effect的聲線,顯得跟電子的編曲格格不入…是代表著我,原來從來也不屬於這裡嗎?代表我跟你,根本不應該連接上嗎?
Thumbnail
一個APP在規劃的時候可能覺得主要功能就只有這一兩個,實作起來應該不難,卻忘了現代人的胃口已經越養越大,很多不在你預期內但對於使用者來說卻是很基本的功能;另一種是商店上架或是第三方要求的必要功能。今天我們來探討第三種必要功能:OAuth登入。
Thumbnail
展期|2022.8.03-2022.10.23 地點| 高雄港港史館 官網|https://twdesign.tw/exhibition-view/3 主辦單位 | 高雄市政府文化局 策展統籌|駁二藝術特區 策展單位|樸實創意、中間研究室 策展人|許哲瑜、郭中元 統籌企劃|秦安慧、薛佩姍
Thumbnail
新功能! 會員登入方式更酷炫了,你怎麼可以不知道! 現在只要連結虛擬錢包也能快速登入方格子。
Thumbnail
本來以為是個宅宅背景的小說,殊不知除了宅氣以外,還有陰陽眼、繭居、PUA和霸凌等議題。閱讀體驗上就是有些議題離生活經驗太遠,以至於有些出戲跟不蘇湖的感覺。而這書是圖書館借的電子書,在期限內看完之外,覺得果然很同個作者的風格,中間夾些說教這樣。
Thumbnail
靈力場裡不是空無死寂的,而是波濤汹湧,暗藏漩渦的能量場域,短暫過境無妨,久待就要有護身結界或護持者,否則,很容易被干擾,或被一些幻相假相,掉入低頻陷阱或結界型地獄...
Thumbnail
踏入工程師生涯也十幾個年頭了,這些年工作主體逐漸從開發轉向諮詢規劃。遊走於兩者之間總會碰到一些相持不下的時刻,比如 PM 覺得某某功能很重要,可工程部門一直想要說服說這個做不了。處理得好就是雙贏,處理得不好往往就是不歡而散。 當一個新的產品及服務放到你面前的時候,你是怎麼去理解一個產品的?
Thumbnail
之前寫到我在去(2020)年底的時候把 Notion 內部所使用的內容慢慢地轉移到其他的 App 去了,依照原本的模組,主要就是分成了三大塊,今天想要為轉用的筆記軟體 Agenda 起個頭。
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
前陣子世界經典棒球賽,每一場中華隊的賽事,都讓人看得熱血沸騰,有時覺得,在電視機前場邊觀戰喊加油,還真不過癮呢!好不容易投手解決掉對方強打,短暫離開趕緊衝去廁所,不久後再趕緊回來關心賽事。沒錯,比賽正緊張之際,連大氣都不敢喘一口,忍到一個段落稍微離開一下,總是要「再登入」。
Thumbnail
祭如在 人生 誰說不是場催眠大夢 賦予意義的 是
Thumbnail
張蔓莎沒有加上任何Vocal Effect的聲線,顯得跟電子的編曲格格不入…是代表著我,原來從來也不屬於這裡嗎?代表我跟你,根本不應該連接上嗎?
Thumbnail
一個APP在規劃的時候可能覺得主要功能就只有這一兩個,實作起來應該不難,卻忘了現代人的胃口已經越養越大,很多不在你預期內但對於使用者來說卻是很基本的功能;另一種是商店上架或是第三方要求的必要功能。今天我們來探討第三種必要功能:OAuth登入。
Thumbnail
展期|2022.8.03-2022.10.23 地點| 高雄港港史館 官網|https://twdesign.tw/exhibition-view/3 主辦單位 | 高雄市政府文化局 策展統籌|駁二藝術特區 策展單位|樸實創意、中間研究室 策展人|許哲瑜、郭中元 統籌企劃|秦安慧、薛佩姍
Thumbnail
新功能! 會員登入方式更酷炫了,你怎麼可以不知道! 現在只要連結虛擬錢包也能快速登入方格子。
Thumbnail
本來以為是個宅宅背景的小說,殊不知除了宅氣以外,還有陰陽眼、繭居、PUA和霸凌等議題。閱讀體驗上就是有些議題離生活經驗太遠,以至於有些出戲跟不蘇湖的感覺。而這書是圖書館借的電子書,在期限內看完之外,覺得果然很同個作者的風格,中間夾些說教這樣。
Thumbnail
靈力場裡不是空無死寂的,而是波濤汹湧,暗藏漩渦的能量場域,短暫過境無妨,久待就要有護身結界或護持者,否則,很容易被干擾,或被一些幻相假相,掉入低頻陷阱或結界型地獄...
Thumbnail
踏入工程師生涯也十幾個年頭了,這些年工作主體逐漸從開發轉向諮詢規劃。遊走於兩者之間總會碰到一些相持不下的時刻,比如 PM 覺得某某功能很重要,可工程部門一直想要說服說這個做不了。處理得好就是雙贏,處理得不好往往就是不歡而散。 當一個新的產品及服務放到你面前的時候,你是怎麼去理解一個產品的?
Thumbnail
之前寫到我在去(2020)年底的時候把 Notion 內部所使用的內容慢慢地轉移到其他的 App 去了,依照原本的模組,主要就是分成了三大塊,今天想要為轉用的筆記軟體 Agenda 起個頭。