1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        JustAuth 故事會:群主,你的代碼出 BUG 了!

        共 4159字,需瀏覽 9分鐘

         ·

        2021-05-28 11:12

        JustAuth 用戶故事:群主,你的代碼出 BUG 了! 

        以下內(nèi)容改編整理自 JustAuth 社區(qū)群(QQ 群,230017570),為保護(hù)隱私,已經(jīng)隱去相關(guān)關(guān)鍵信息,文章部分內(nèi)容為潤色后的。

        場景

        小帥哥 在使用 JustAuth 時(shí)遇到了一些問題,通過在JustAuth 社區(qū)群(QQ 群)中提問的形式尋找解決方案。期間分別由小A、小B等群友參與解答,最后在群主大帥哥的細(xì)致解答下,成功解決了小帥哥的所有疑問,并獲得小帥哥的全方位好評!

        問題一

        小帥哥群主大帥哥,我用 Gitee 測試時(shí),遇到了一個(gè) BUG,瀏覽器提示我“存在錯(cuò)誤,請求范圍無效、未知或格式不正確”,這是因?yàn)槭裁??是你寫?BUG 了嗎?

        小A:你這是參數(shù)錯(cuò)誤,不關(guān) JustAuth 的問題吧。“狗頭笑”

        小B:你指定 scope 就可以了

        群主大帥哥:經(jīng)老夫掐指一算,你這就是 小B 說的問題,在使用 JustAuth 的自定義 scope 功能[1]時(shí),不建議使用所有 scope,因?yàn)椴糠制脚_的 scope 權(quán)限需要特殊申請。你可以將自定義 scope 的配置去掉,這樣的話 JustAuth 會使用該平臺默認(rèn)的 scope 進(jìn)行授權(quán)。

        小帥哥:哇,真的是耶!問題已經(jīng)解決了,群主真好用!

        群主大帥哥:咳咳,注意用語,是 JustAuth 真好用,群主是人,不能隨便用。(^_^)

        小帥哥:群主牛逼!真棒!

        問題二

        小帥哥群主大帥哥,前后端分離的項(xiàng)目中,在登錄時(shí) ,在 callback 里面, 是使用 response.sendRedirect 重定向到前端 登錄中間頁嗎?

        小C:都分離了,為什么還要后端重定向,和后端沒關(guān)了啊,后端返回token不就可以了嗎?

        群主大帥哥:這個(gè)問題非常好,解決方案可不少。你說已把文檔找,問題還是搞不了。我猜你是沒找對,要不不能這么累。進(jìn)到這兒[2]看一看,絕對能把問題辦!

        小帥哥:群主群主你真棒,三言兩語就敢上。這個(gè)問題弄不了,正常流程怎么搞?

        小A小B小C:你倆能不能正常點(diǎn)?

        群主大帥哥:咳咳,言歸正傳,書接上文。前后端分離的項(xiàng)目正常流程是這樣的:

        1.第三方應(yīng)用的回調(diào)地址填前端項(xiàng)目的可訪問地址2.后臺接口使用 JustAuth 的 request.authorize(xx) 生成授權(quán)鏈接,然后返回給前臺3.前臺獲得授權(quán)鏈接后進(jìn)行跳轉(zhuǎn)4.第三方登錄完成后回調(diào)到前端項(xiàng)目的可訪問地址5.前端獲取回調(diào)中的 code 和 state 等參數(shù),傳回后臺,請求 token 和 userinfo

        小帥哥:群主牛逼!我徹底明白了,你說的流程簡單易懂。真棒!

        問題三

        小帥哥群主大帥哥state 用默認(rèn)存儲 和 redis 存儲 有何區(qū)別???我看了 名詞解解[3] 和 高級特性里面的內(nèi)容(使用 state[4]自定義 state 緩存[5]),state 我看默認(rèn)有效時(shí)間 3 分鐘, 請問這個(gè)時(shí)間對哪里有影響呢?

        群主大帥哥:state的有效期對【單次授權(quán)流程長時(shí)間沒操作這個(gè)場景】有影響。一般來說用戶進(jìn)行授權(quán)登錄都是實(shí)時(shí)的(即從用戶點(diǎn)擊授權(quán)登錄、跳轉(zhuǎn)到第三方登錄授權(quán)、回調(diào)到業(yè)務(wù)系統(tǒng)這個(gè)流程是依次順利操作的),很少遇到用戶在授權(quán)時(shí),跳轉(zhuǎn)到第三方登錄頁面后,用戶長時(shí)間沒操作,等過了3分鐘后再進(jìn)行登錄操作。這個(gè)時(shí)候 justauth 中的 state 已經(jīng)過期了,用戶在第三方登錄成功回調(diào)到業(yè)務(wù)系統(tǒng)后,會授權(quán)失敗。會提示state無效。這個(gè)時(shí)候就需要用戶重新登錄授權(quán)

        小帥哥:明白了, 就是控制用戶第三方登錄的有效時(shí)間。

        群主大帥哥:可以這么理解。state 是一次使用的,不可能讓它長期滯留緩存。不過這個(gè)過期時(shí)間你可以根據(jù)你們自己的需要進(jìn)行調(diào)整。你如果覺得這個(gè)時(shí)間短,那你可以調(diào)長一點(diǎn),比如10分鐘過期。

        小帥哥:state 只要是隨機(jī)數(shù)就行是吧?

        群主大帥哥:對,隨機(jī)數(shù)。

        (大帥哥正在碼字的時(shí)候)

        小帥哥bind:uuid 這樣可以嗎,因?yàn)橄牖卣{(diào)時(shí)好區(qū)分是綁定還是登錄。

        群主大帥哥:很棒,你已經(jīng)會搶答了!確實(shí)可以這么操作,即在用戶進(jìn)行綁定的時(shí)候可以使用用戶 id。

        小帥哥:是 justauth 太棒了!接下來有時(shí)間 想研究下大佬的升級作品 JAP[6]

        群主大帥哥:完全沒問題!JAP 是一款開源的登錄認(rèn)證中間件,基于模塊化設(shè)計(jì),為所有需要登錄認(rèn)證的 WEB 應(yīng)用提供一套標(biāo)準(zhǔn)的技術(shù)解決方案,開發(fā)者可以基于 JAP 適配絕大多數(shù)的 WEB 系統(tǒng)(自有系統(tǒng)、聯(lián)邦協(xié)議)。Just auth into any app!

        小帥哥:哇!這么棒!那 JAP 有什么功能和優(yōu)勢?

        群主大帥哥:好問題!本文最后我會給你詳細(xì)解釋。

        群主大帥哥:前面提到可以用 UID 充當(dāng) state ,不過不建議直接使用 UID,最好用 id+隨機(jī)數(shù)加密(要求可解密)后進(jìn)行傳輸。state 是保證流程安全的,它就是為了防止 csrf 攻擊的,如果你直接用用戶id,也是可能存在被攻擊的情況。比如這個(gè)回調(diào)請求被攔截后把state 替換成了攻擊者的id,這個(gè)時(shí)候就會出問題。

        小帥哥:行,我用md5 加密下。

        群主大帥哥:額....,你md5加密后咋解密?不解密你咋知道是哪個(gè)用戶的id?或者你還是用隨機(jī)數(shù),你本地把用戶id和隨機(jī)數(shù)關(guān)聯(lián)起來就行。

        小帥哥:了解了, 為安全起見,用 對稱加密 (AES) 對用戶id 加密, 回調(diào)時(shí) 解密該id。同時(shí)校驗(yàn)該 id 合法性(是否存在),綁定當(dāng)前用戶信息。

        群主大帥哥:你真棒!

        小帥哥:群主牛逼!真棒!

        關(guān)于 JAP

        JAP 是什么?

        JAP 是一款開源的登錄認(rèn)證中間件,基于模塊化設(shè)計(jì),為所有需要登錄認(rèn)證的 WEB 應(yīng)用提供一套標(biāo)準(zhǔn)的技術(shù)解決方案,開發(fā)者可以基于 JAP 適配絕大多數(shù)的 WEB 系統(tǒng)(自有系統(tǒng)、聯(lián)邦協(xié)議)。

        JAP 有哪些功能?

        JAP 開源的統(tǒng)一登錄認(rèn)證標(biāo)準(zhǔn)組件 - 包含的功能

        JAP 有什么優(yōu)勢?

        ?易用性:JAP 的 API 沿襲 JustAuth 的簡單性,做到了開箱即用的程度。JAP 高度抽象各種登錄場景,提供了多套簡單使用的 API,極大程度的降低了開發(fā)者的學(xué)習(xí)成本和使用成本?全面性:JAP 全量適配 JustAuth 支持的第三方平臺,實(shí)現(xiàn)第三方登錄。同時(shí)也支持所有基于標(biāo)準(zhǔn)OAuth2.0 協(xié)議或者 OIDC 協(xié)議或者 SAML 協(xié)議的應(yīng)用、系統(tǒng),同時(shí) JAP 還提供不同語言版本的項(xiàng)目 SDK,適配多種研發(fā)場景?模塊化:JAP 基于模塊化設(shè)計(jì)開發(fā),針對每一種登錄場景,比如賬號密碼、OAuth、OIDC等,都單獨(dú)提供了獨(dú)有的模塊化解決方案?標(biāo)準(zhǔn)化:JAP 和業(yè)務(wù)完全解耦,將登錄認(rèn)證相關(guān)的邏輯抽象出一套標(biāo)準(zhǔn)的技術(shù)解決方案,針對每一種業(yè)務(wù)場景,比如用戶登錄、驗(yàn)證密碼、創(chuàng)建并綁定第三方系統(tǒng)的賬號等,都提供了一套標(biāo)準(zhǔn)的策略或者接口,開發(fā)者可以基于 JAP,靈活并方便的完成相關(guān)業(yè)務(wù)邏輯的開發(fā)和適配?通用性:JAP 不僅可以用到第三方登錄、OAuth授權(quán)、OIDC認(rèn)證等業(yè)務(wù)場景,還能適配開發(fā)者現(xiàn)有的業(yè)務(wù)系統(tǒng)的普通賬號密碼的登錄場景,基本將所有登錄相關(guān)的業(yè)務(wù)場景都已經(jīng)涵蓋。針對 WEB 應(yīng)用,JAP 將提供滿足各種不同登錄場景的解決方案(和開發(fā)語言無關(guān))

        JAP 適用于哪些場景?

        JAP 適用于所有需要登錄認(rèn)證功能的場景。比如:?要求規(guī)范:新項(xiàng)目立項(xiàng),你們需要研發(fā)一套包含登錄、認(rèn)證的系統(tǒng),并且從長遠(yuǎn)方面考慮,你們需要一套標(biāo)準(zhǔn)的、靈活的、功能全面的登錄認(rèn)證功能。?需求靈活:現(xiàn)有登錄模塊為自研,但是新一輪的技術(shù)規(guī)劃中,你們想將登錄認(rèn)證模塊重構(gòu),以更加靈活的架構(gòu)適應(yīng)后面的新需求,比如:集成 MFA 登錄、集成 OAuth 登錄、SAML登錄等。?力求省事:你們的項(xiàng)目太多(或者是開發(fā)語言較多,比如:Java、Python、Node 等),每個(gè)項(xiàng)目都需要登錄認(rèn)證模塊,想解決這種重復(fù)勞動的問題,使研發(fā)人員有更多的時(shí)間和精力投入到業(yè)務(wù)開發(fā)中,提高研發(fā)產(chǎn)能和研發(fā)效率。關(guān)于 JAP 的更多內(nèi)容,可以參考《JAP 產(chǎn)品技術(shù)白皮書[7]

        相關(guān)鏈接

        ?Gitee:https://gitee.com/fujieid/jap?Github:https://github.com/fujieid/jap?CodeChina:https://codechina.csdn.net/fujieid/jap?開發(fā)者文檔:https://justauth.plus


        引用鏈接

        [1] 自定義 scope 功能: https://justauth.wiki/features/customize-scopes.html
        [2] 這兒: https://justauth.wiki/perfect_articles.html
        [3] 名詞解解: https://justauth.wiki/quickstart/explain.html
        [4] 使用 state: https://justauth.wiki/features/using-state.html
        [5] 自定義 state 緩存: https://justauth.wiki/features/customize-the-state-cache.html
        [6] JAP: https://gitee.com/fujieid/jap
        [7] JAP 產(chǎn)品技術(shù)白皮書: https://justauth.plus/paper/JAP-paper-V1.0.0.pdf


        瀏覽 66
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            成人片在线播放高清无码 | 女人被躁到高潮嗷嗷叫动态 | 午夜精品久久久久蜜桃 | 天天射天天撸 | 美女啪啪无遮挡免费久久网站 | 成人性做爰AAA片免费看 | 无码系列| 欧美夜夜夜 | 公开高潮当众露出羞耻h | 电车痴汉系列h文 |