<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          沒錯,用三方 Github 做授權(quán)登錄就是這么簡單!(OAuth2.0實戰(zhàn))

          共 5538字,需瀏覽 12分鐘

           ·

          2020-07-14 21:16

          點擊“?程序員內(nèi)點事?”關(guān)注,選擇“?設(shè)置星標(biāo)?”

          堅持學(xué)習(xí),好文每日送達(dá)!


          一篇《OAuth2.0 的四種授權(quán)方式》文末說過,后續(xù)要來一波OAuth2.0實戰(zhàn),耽誤了幾天今兒終于補上了。

          最近在做自己的開源項目(fire),Springboot + vue 的前后端分離框架才搭建完,剛開始做登錄功能,做著做著覺得普通賬戶密碼登錄太簡單了沒啥意思,思來想去為顯得逼格高一點,決定再加上 GitHub授權(quán) 和 人臉識別等多種登錄方式。

          303f8a907a2fc2054ef20b56bf182878.webp在這里插入圖片描述

          GitHub授權(quán)登錄正好用到了OAuth2.0中最復(fù)雜的授權(quán)碼模式,正好拿我這個案例給大家分享一下OAuth2.0的授權(quán)過程,我把項目已經(jīng)部署到云服務(wù),文末有預(yù)覽地址,小伙伴們可以體驗一下,后續(xù)項目功能會持續(xù)更新。

          一、授權(quán)流程

          在具體做GitHub授權(quán)登錄之前,咱們再簡單回顧一下OAuth2.0授權(quán)碼模式的授權(quán)流程,如果 fire 網(wǎng)站允許 用GitHub 賬號登錄,流程大致如下圖。

          3a1957c0160834209481b75e2066c79c.webp在這里插入圖片描述

          用戶想用GitHub 賬號去登錄 fire 網(wǎng)站:

          • fire 網(wǎng)站先讓用戶跳轉(zhuǎn)到 GitHub 進行授權(quán),會彈出一個授權(quán)框。
          • 用戶同意后,GitHub 會根據(jù)redirect_uri 重定向回 fire 網(wǎng)站,同時返回一個授權(quán)碼code。
          • fire 網(wǎng)站使用授權(quán)碼和客戶端密匙client_secret,向 GitHub 請求令牌token,檢驗通過返回令牌。
          • 最后fire 網(wǎng)站向GitHub 請求數(shù)據(jù),每次調(diào)用 GitHub 的 API 都要帶上令牌。

          二、身份注冊

          梳理完授權(quán)邏輯,接下來我們還有一些準(zhǔn)備工作。

          要想得到一個網(wǎng)站的OAuth授權(quán),必須要到它的網(wǎng)站進行身份注冊,拿到應(yīng)用的身份識別碼 ClientIDClientSecret

          注冊 傳送門 https://github.com/settings/applications/1334665,有幾個必填項。

          • Application name:我們的應(yīng)用名;
          • Homepage URL:應(yīng)用主頁鏈接;
          • Authorization callback URL:這個是github 回調(diào)我們項目的地址,用來獲取授權(quán)碼和令牌。67e79d1cd81a56bd98f1084a8f97b556.webp

          提交后會看到就可以看到客戶端ClientID 和客戶端密匙ClientSecret,到這我們的準(zhǔn)備工作就完事了。

          b904fabf14558b9d1f19810f09bc7e6b.webp在這里插入圖片描述

          三、授權(quán)開發(fā)

          1、獲取授權(quán)碼

          為了更好的看效果,獲取授權(quán)碼我處理的比較粗暴,直接在JS里拼裝好了授權(quán)鏈接,但實際工作開發(fā)中一定要考慮到安全問題。

          https://github.com/login/oauth/authorize?
          client_id=ad41c05c211421c659db&
          redirect_uri=http://47.93.6.5:8080/authorize/redirect

          前端 vue 的邏輯也非常簡單,只需要 window.location.href 重定向一下。

          
          
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                    <th id="afajh"><progress id="afajh"></progress></th>
                    亚洲乱伦小说图片 | 成人性爱免费网站 | 三级网站永久大全 | 九哥草逼网| 91无码人妻一区二区成人aⅴ |