PTT「半自動登入」user script
偵測「請輸入代號……」就自動送帳密,太過方便了,送出敏感資訊時,還是經過人手操作卡一道比較好。
Script 放在 Greasy Fork →
PTT 半自動登入
原始碼也有放在 Github。
現有的自動登入方案
這邊說的 PTT 是指 https://term.ptt.cc/,採用修改版 PttChrome(登入後按右鍵「關於」就能看到)在網頁上提供類似純文字介面的操作,是官方維護、使用者眾的服務。當年上線消息:[公告] 使用瀏覽器直接連線至批踢踢。
BBS 沒有自動登入功能,早期都是靠連線軟體(例如 PCMan)的自動回應,看見「請輸入代號……」就自動回答。
當直接用瀏覽器上站變成主流,需求就落到擴充套件或 user script 上。 參考一些目前解法:
-
term.ptt autologin
by swstar
/ 2017
實作是把
window.WebSocket
換掉以便在open
handler 送出帳密。 -
term.ptt.cc 自動登入
by maple3142
/ 2018
除了登入,還提供自動跳過一些畫面的功能。 實作是捕捉 PttChrome 的
console
輸出(log
或info
),解析訊息判斷發生什麼事,再做反應。 -
PttChrome+term.ptt.cc Add-on
by alan23273850
/ 2019
功能眾多,自動登入只是其一。 實作是比對畫面
innerText
做自動回應。這幾支 user script 有一個共通限制,就是要把帳密直接寫在 script 裡才能使用。
-
PTT Auto Login
by c910335
/ 2021
這個不是 user script 而是 Chrome 擴充,利用瀏覽器的密碼管理員儲存/取得密碼,終於不必再寫死帳密了。
但 Firefox 由於未支援
PasswordCredential
,所以是不能用的。
新路數
「如果登入表單是一般 HTML <form>
,應該就能沿用密碼管理員了吧?」
之前雖然想過,但一直沒試成功,最近用 <dialog>
避開跟 PttChrome 介面打架,場景乾淨之下就試出來了。
不過只有 Firefox 成功,Chrome 就無法讓密碼管理員跳出來(詢問要不要存密碼),所以 Chrome 的話會退回 PasswordCredential
解法。
實際使用上,只要做一次表單登入並儲存密碼,之後每次登入就只要按 Enter 即可。
如果臨時不想登入,也可以把對話框關掉,就回歸一般使用。
特色總結
- 不要在 script 內文寫明帳號、密碼
- 使用瀏覽器的密碼管理員
- 支援 Firefox(測過版本 126.0.1)
- 按下「送出」或 Enter 才真正執行登入
有 0 個意見
☂