Laravel 串 GOOGLE 第三方登入 - Part 1 申請權限

分享

現在的網站如果沒有做第三方登入感覺就落伍了。
不過說真的,如果有第三方登入可以節省非常多的時間在打用戶資料,非常不友善,而且還要多記一組帳號密碼。像我自己本身就覺得每個網站都有自己的帳號密碼非常惱人,到底誰會記得!!!
雖然到了 2024 年的今天,已經很多人有分享也有 AI 輔助了,不過我自己還是做個紀錄,畢竟對接的過程還是有遇到問題,花了一些時間在 debug

前置作業:申請網站驗證的權限

要使用 Google 第三封登入需要有一些前置作業,首先要先連到 https://console.cloud.google.com/

選取API
選取API

OAuth 同意畫面

進來後會像下面這張圖,然後要先去 OAuth 同意畫面

API和服務
API和服務

接著就是照畫面上的只是填好資料按下一步,如果不知道怎麼填可以參考下圖

編輯應用程式註冊申請
編輯應用程式註冊申請
應用程式網域
應用程式網域

測試的時候外部沒辦法連到這個 API,所以要先把自己的 測試用帳號 填寫上去,不然可是沒辦法順利得到回傳的

測試使用者
測試使用者

完成後按下儲存,接下來就要設定 憑證

建立憑證

建立憑證
授權網址
授權網址

接這滾輪往下滾會出現重新導向網址的設定

重新導向 URL

重新導向網址
重新導向網址

重新導向的網址要填 callback 的網址,google 驗證完你所選的 google 帳號後會發出請求到這個地址
如果找不到網址或是沒有權限就會出現下面這張圖

已封鎖存取權:這個應用程式的要求無效
已封鎖存取權:這個應用程式的要求無效

成功的話就是下面這張圖

callback成功

Read more

Gaze Guard 短影片旁白的 TTS 成本與隱私防護示意圖

短影片旁白的成本,其實比我想像低

我最近在做一支 Gaze Guard 的 20 秒產品介紹影片。 原本想說簡單做個動畫就好。 後來想說如果有配音,會感覺比較生動也比較能夠描述使用的情境和達成的效果。 這次我測了什麼 我測的是產品介紹影片用的英文旁白。 工具底層使用的是 Edge TTS,也就是 Microsoft Edge 的線上 Text-to-Speech 服務。常見的底層工具是 edge-tts。 這不是正式 Azure Speech API 的計費路徑。 在我這次的環境裡,它沒有要求 API key,也沒有回傳可見的 per-use billing。 所以這次測試本身,比較像是快速 prototype。 如果未來要正式商用、穩定大量產出,就要回頭看 Azure Speech、OpenAI TTS、ElevenLabs 這類正式付費方案。

By SteepingLogic
用 Cloudflare Tunnel,從外面連回本機 Hermes Dashboard

用 Cloudflare Tunnel,從外面連回本機 Hermes Dashboard

# 用 Cloudflare Tunnel,從外面連回本機 Hermes Dashboard 我有一台 local Hermes。 平常它就在自己的機器上跑。 可能是家裡的桌機。 可能是 NAS。 可能是一台一直開著的 Linux box。 也可能只是我自己的筆電。 問題是,人一離開那個網路,Hermes dashboard 就變成一個只存在於 localhost 的東西。 我想在外面打開它。 但我沒有 static IP。 沒有買網域。 也不想進路由器開 port forwarding。 因為那條路通常長這樣: * 找 public IP * 設定 NAT * 開 port * 處理防火牆 * 補 HTTPS * 設定憑證 * 再擔心 origin IP 被掃 非常友善。 所以這篇先走另一條路:

By SteepingLogic
Invoshot 開發日記|正向回饋

Invoshot 開發日記|正向回饋

想信很多人在開發的時候都常常會做一件事,那就是: 不斷地反覆思考,在腦袋內把流程跑過很多次,然後思考哪裡可以做得更好 不限坐在電腦前的時後,可能是在捷運上,在人行道上, 在馬桶上或是在洗澡的時候 🤪 我不斷地在想:AI 辨識完一張發票後,使用者接下來最需要的是什麼? 每個欄位都要核對嗎? 這麼多欄位真的不會漏看嗎? 所以我在 Invoshot 裡加了提醒功能。 辨識結果出來後,系統會把比較需要注意的地方標出來。 不是把所有不確定都丟給使用者,而是把他真正需要介入的那幾秒鐘留出來。 今天收到一則訊息: 今天用了有新增提醒功能很棒! 真的有變輕鬆 😎 看到這句的時候,我第一個想到的是: 原來那些只是我腦內風暴的優化項目,使用者是真的可以感受到差異的! 感覺又有動力了!

By SteepingLogic