進入 Github 的 Setting 頁面,點擊 Developer settings,如圖所示:
進入后點擊 New Oauth App,如圖所示:
在其中填寫主頁 URL 和 回調 URL,回調 URL 尤為重要,如果不太明白可以先和我一致。
點擊注冊后,上方會生成 Client ID 和 Client Secret,這兩個后面要用到。
1.2 HTML 頁面
頁面十分簡單,只有兩個跳轉鏈接:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>三方登錄</title>
</head>
<body>
<h1>三方登錄Demo</h1>
<div>
<a href="/githubLogin">GitHub登錄</a>
<a href="/qqLogin">QQ登錄</a>
</div>
</body>
</html>
在這個方法中,我們需要訪問 GitHub 的認證服務器,使用 Get 請求,這里使用重定向來實現。
遵循 Oauth 2.0 規范,需要攜帶以下參數:
這里的 state 參數我要額外說明下,因為該參數會在后面的回調 URL 中被原樣攜帶回來,絕大多數的開發者會忽略該字段,阮一峰老師的文章也沒有著重提及這一點。但是忽略該參數是會導致 CSRF攻擊的,在回調函數中應當對該字段進行校驗!
關于如何校驗,我一開始的想法是使用 session 來存儲 state 進行校驗的,但是我發現使用重定向后 session 不是同一個 session,方案一失敗。
然后我想通過 ajax 請求,在頁面中使用window.location.href 方法跳轉到認證服務器,使用 session 存儲,但是很不幸這樣也不是同一個 session,方案二失敗。
最后我的解決辦法是使用 redis 緩存,使用 set 存儲,回調時判斷是否存在。當然你也可以用 HashMap 來存儲,這也是一個解決辦法。
關于 Redis,可以參考:https://jitwxs.cn/e331e26a.html
private static String GITHUB_CLIENT_ID = "0307dc634e4c5523cef2";
private static String GITHUB_CLIENT_SECRET = "707647176eb3bef1d4c2a50fcabf73e0401cc877";
private static String GITHUB_REDIRECT_URL = "http://127.0.0.1:8080/githubCallback";
@RequestMapping("/githubLogin")
public void githubLogin(HttpServletResponse response) throws Exception {
// Github認證服務器地址
String url = "https://github.com/login/oauth/authorize";
// 生成并保存state,忽略該參數有可能導致CSRF攻擊
String state = oauthService.genState();
// 傳遞參數response_type、client_id、state、redirect_uri
String param = "response_type=code&" + "client_id=" + GITHUB_CLIENT_ID + "&state=" + state
+ "&redirect_uri=" + GITHUB_REDIRECT_URL;
// 1、請求Github認證服務器
response.sendRedirect(url + "?" + param);
}
QQ瀏覽器新版新界面體驗回頂部
應該說小編個人算是半個完美主義者,雖然不是處女座,但在很多東西的挑剔上一點也不遜色于處女座網友,瀏覽器便是其一。由于工作上的緣故,自己也曾試用過多款國內外瀏覽器,其中自然也包括QQ瀏覽器。雖然網友們的反響大體還行,可由于種種緣故,最終還是被俺PASS出了硬盤之外。幾天前,騰訊推出了QQ瀏覽器9.0正式版,小編想從自己的角度說一說對這款瀏覽器的具體看法!
軟件名稱: | 騰訊QQ瀏覽器 |
軟件版本: | 9.0 正式安裝版 |
軟件大小: | 4.60MB |
軟件授權: | 免費 |
適用平臺: | WinXP Win2003 Vista Win8 Win7 |
下載地址: | http://dl.pconline.com.cn/download/170543.html |
圖01 QQ瀏覽器9.0正式版
此次正式版基于Chromium 43.0.2357.124內核,貌似也是目前僅有的一款Chrome 43內核的國產瀏覽器。和其他瀏覽器一樣,9.0時代的QQ瀏覽器重回IE+Chrome雙核心架構,或許也是一種向網友們的妥協吧。當然回歸的一個負面影響就是體積大幅增加,從8.0時代的4.9MB一下提升至現在的39.1MB,發福速度的確令人瞠目。好在安裝速度并沒有受到太多影響,至少和其他瀏覽器相比還是很快的。
圖02 貌似是目前唯一一款采用Chrome 43內核的國產瀏覽器
啟動快一直是QQ瀏覽器的亮點之一,9.0也不例外。測試中QQ瀏覽器0秒啟動的描述并不夸張,尤其當你將啟動頁設為空白的時候,那感覺還是相當enjoy的!網頁打開也是一樣,總體感覺新版的頁面過渡更為順滑,沒有了之前8.0時代常見的卡頓感。頁面加載速度也有提升,總體看是少了很多拖泥帶水之感!
圖03 使用起來很順滑,沒有了8.0時代經常見到的卡頓感
9.0版可根據網站Logo自動變更標簽頁色彩,實際用起來還是蠻好玩的。比方說百度的標簽就是藍的、京東的標簽就是紅的、淘寶網則是標志性的橙色。總之你也可以說這項功能沒啥卵用,可在不影響性能的情況下為系統平添幾分色彩又有什么不好呢?
圖04 多彩標簽是新版一個很Cool的設計,雖然實際用處不大
擴展是Chrome瀏覽器的精髓,不過由于Google業務在國內受限,大多數網友是無法直接從Chrome應用商店獲取到想到的擴展的。這就導致兩種情況出現,一是借助瀏覽器廠商自己的應用商店曲線救國,另一種則是直接安裝從其他渠道下載回來的Chrome擴展。
圖05 QQ瀏覽器的應用商店的分類稍粗,但內容卻很全面
QQ瀏覽器9.0的應用商店種類很全,涵蓋了實用工具、購物比價、社交網絡、休閑娛樂、開發者工具幾個版塊,雖然分類上略微顯得有點粗糙,但內容還是挺全的。唯一一個問題就是沒有提供插件的截圖,安裝時總讓人有種盲人摸象的感覺。
圖06 擴展的下載很快,但沒有留出截圖的空間就顯得有些誠意不夠了
除了內置應用庫外,QQ瀏覽器9.0也支持安裝原生的Chrome擴展。小編試了試自己收藏的幾款Chrome擴展,發現的確如此。不僅安裝沒有障礙,啟動也很正常,并不像某些瀏覽器那樣就算安裝成功了也無法使用。
PS:安裝本地擴展需要首先進入商店頁面,然后直接將文件拖至瀏覽器界面即可。
圖07 支持本地擴展安裝是個好主意,畢竟很多優勢擴展國內應用商店是沒有的
此外我也很欣賞它的擴展一鍵隱藏功能,有些功能性插件如果沒必要顯示的話,直接右鍵隱藏起來即可,可以最大程度上保證界面的整潔。
圖08 無需顯示的擴展可以右鍵隱藏
這里想特別說一下微信,作為時下最火的一款騰訊系產品,QQ瀏覽器9.0也給了它一些特別照顧。之前版本對于微信的支持,是單開了一個標簽頁,這樣所帶來的問題就是來了信息必須切換到這個標簽才能查看。9.0版做出了一個人性化改進,那就是將微信直接改到側邊欄上,讓其成為側邊欄上一個按鈕。同時擴展欄上的微信按鈕依舊保留,可以向用戶提供具體的新信息數量。
圖09 新版QQ瀏覽器將微信改到了側邊欄,接收新信息時不用再通過標簽頁切換了
2是否極速?跑分結果告訴你回頂部
歷史記錄支持按天查看,同時也能借助復選框批量對一些記錄定點刪除。此外QQ瀏覽器9.0還支持DirectWrite高清字體渲染,如果你的電腦是高清屏的話,無疑是條絕佳的利好消息。
圖10 歷史記錄頁面,支持復選式批量清除
此外QQ瀏覽器9.0也提供了一鍵登錄功能,提前登錄自己的QQ帳號后,可以自動登錄其他騰訊類網站,比方說QQ空間、騰訊微博等就會顯得很方便。
圖11 支持選項云同步和QQ服務的自動登錄,不過同步功能不支持擴展,仍需要手工下載安裝
QQ瀏覽器9.0支持選項云同步,尤其在家里和辦公室都用QQ瀏覽器的情況下,會顯得非常方便。不過從小編的測試來看,這項功能似乎并不包含擴展,一臺電腦上所安裝的擴展并不能同步到其他電腦。
QQ瀏覽器9.0并沒有加入傳統的換膚功能,所謂的換膚不過就是換個顏色罷了。變動的位置主要集中在標簽、標簽欄和地址欄上,此外用戶也能根據喜好選擇標簽欄上置還是下置。
圖12 QQ瀏覽器的換膚功能,其實叫做換色更準確一些
QQ瀏覽器9.0也加入了時下流行的標簽頁靜音功能,它能自動識別正在播放聲音的頁面,并在標簽欄上彈出一個小喇叭圖標。小喇叭是可以點擊的,點擊后就能對該頁面單獨靜音了。不過QQ瀏覽器并未對視頻和音頻加以區分,統統都是以一個喇叭代替。
圖13 支持標簽頁靜音
好了,最后再說一說速度吧。
1. 啟動速度。剛才說過了,基本上就是秒開,騰訊官方宣稱:冷啟動0.3s、熱啟動0.1s。個人感覺,如果你用的電腦不是很古董,且安裝了固態硬盤(SSD),那么這個成績是可以直接體驗到的。
2. HTML5跑分。這個絕對和內核版本有著很大關系,成績530,可以說是目前國內瀏覽器中最高的打分了。其他瀏覽器的跑分結果如下:
圖14 HTML5跑分結果
圖15 這是其他瀏覽器的跑分成績,大家可以對照比較一下
3. 此外小編也測試了一下Javascript的跑分情況,QQ瀏覽器9.0的得分為16629,總體看還是不低的。至少相比小編目前在用的360安全瀏覽器8(Chromium 42)要高出不少。
圖16 與360安全瀏覽器8的Javascript跑分對比(左:360安全瀏覽器8 右:QQ瀏覽器9.0)
寫在最后
個人覺得QQ瀏覽器9.0總體來說還是不錯的,運行穩定,操作也很流暢。此外測試中我也試用了一下它的雙核切換功能,總體感覺和同類瀏覽器差別不大,多數網站會使用極速模式,網銀或交易類頁面會自動選擇兼容模式。此外你也可以在使用過程中手工切換,點擊按鈕后,會彈出一個“極速模式”還是“兼容模式”的選擇框,菜單很大也很好點。不過它的IE模式貌似不能調用Win10的Edge內核,多少算是一個遺憾吧!
圖17 雙核切換按鈕
知是為了防止QQ號被盜還是為了提高QQ同步助手的存在感(安裝量),QQ同步助手網頁版竟然迎來了貌似史上最安全的登錄方式改版——必須使用手機上的QQ同步助手二維碼掃碼登錄功能才能登錄!但小編有一個疑問,QQ號被盜之后,QQ同步助手網頁版改成新的登錄方式就不怕被盜了嗎?
軟件名稱: | QQ同步助手 |
軟件版本: | 4.8 官方版 |
軟件大小: | 3.00MB |
軟件授權: | 免費 |
iPhone版 | http://dl.pconline.com.cn/download/160703.html |
Android版: | http://dl.pconline.com.cn/download/55928.html |
QQ同步助手網頁版改為掃描二維碼登錄會更安全?
真相是,如果你的QQ號被盜,那么盜號者一樣能在手機上通過輸入密碼的方式登陸你的QQ同步助手,一樣能盜走你的通訊錄……
QQ同步助手網頁版竟然改為坑爹的二維碼掃描登錄方式
可能,讓QQ同步助手認為更安全的理由是,盜號者無法直接在電腦上直接點鼠標就能登錄你的通訊錄,認為盜號者會嫌麻煩不會去折騰手機(但有心盜你QQ號的會嫌麻煩嗎?)。
可能,讓用戶在單獨使用QQ同步助手網頁版時,在輸入密碼的時候防止被盜。
QQ同步助手網頁版改為掃描二維碼登錄會帶來什么麻煩?
帶來的麻煩可大了,讓QQ客戶端主面板上的“通訊錄”形同虛設,嚴重降低小編通過QQ 6.0使用QQ同步助手網頁版的沖動……
可能也只有很少人會用這個通訊錄功能
想登錄QQ同步助手網頁版,強迫用戶安裝QQ同步助手手機版。如果本身就安裝了QQ同步助手就沒所謂,但小編的QQ通訊錄已經內置了QQ同步助手全部功能,這相當于逼小編裝兩個同功能的APP,這是最坑的也是小編無法接受的!
讓使用QQ通訊錄的人再裝一個QQ同步助手有意思嗎?
好吧,最后看看QQ同步助手的官方說法吧。
QQ同步助手網頁版登錄時要掃描的說明
1、為什么登錄網頁版要掃描了?
為了更好的保護用戶云端數據,QQ同步助手對ic.qq.com網站的登錄方式進行了升級,從輸入帳號和密碼的傳統方式,升級為使用QQ同步助手的客戶端掃描二維碼登錄。
2、怎么掃描?
打開QQ同步助手客戶端=》點擊右上角更多按鈕=》選擇“帳號與設置”=》“帳號”,當前已登錄的用戶右上角會看到“掃一掃”按鈕(未登錄的用戶請先登錄)=》點擊“掃一掃”的按鈕后,按指引掃描ic.qq.com頁面上的二維碼,確認后可完成登錄,查看云端數據。
QQ同步助手網頁版如何登陸
3、掃描后一直提示登錄失敗/超時?
如果掃描后提示登錄失敗/超時,請您將網頁刷新或是重新登錄后再打開QQ同步助手客戶端掃描。
4、我進入帳號設置中后沒有看到掃一掃按鈕?
只有當前有登錄帳號和密碼的用戶才能看到“掃一掃”,請先登錄后再點擊“掃一掃”按鈕掃描。
5、我的手機壞了/沒有攝像頭或是沒有掃一掃的功能,怎么辦?
您可以找到一臺有攝像頭的安卓或IOS系統的手機先下載QQ同步助手客戶端=》然后登錄您的帳號和密碼=》在“帳號與設置”=》“帳號”中點擊“掃一掃”進行掃描即可。給您帶來的不便,敬請諒解。
寫在最后
口碑很好的QQ通訊錄升級為坑爹的微信電話本,QQ同步助手網頁版改成強迫用戶安裝QQ同步助手手機版的二維碼掃描方式,在小編看來,這絕對都是騰訊反人類的代表作……
很簡單舉一個例子,為什么必須要用QQ同步助手手機版的二維碼掃描功能,而不能使用QQ手機版的二維碼掃描功能登錄?
如果強迫用戶安裝QQ同步助手手機版能真的讓安全性提升到另一個“逼格”,那用戶也是能理解的,但目前只是將原來通過輸入賬號密碼的登錄方式簡單變成二維碼掃描登錄方式,盜號風險依然存在,而且更多的是增加了用戶登錄的麻煩?
如果真的想提升安全性,為什么不想微云那樣加一個獨立密碼?
最后小編想說的是,no zuo no die……
*請認真填寫需求信息,我們會在24小時內與您取得聯系。