<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                passport.js是Nodejs中的一個做登錄驗證的中間件,極其靈活和模塊化,并且可與Express、Sails等Web框架無縫集成。Passport功能單一,即只能做登錄驗證,但非常強大,支持本地賬號驗證和第三方賬號登錄驗證(OAuth和OpenID等),支持大多數Web網站和服務。 * 官網:?[http://passportjs.org/](http://passportjs.org/) * Github:?[http://github.com/jaredhanson/passport](http://github.com/jaredhanson/passport) * NPM:?[https://www.npmjs.org/package/passport](https://www.npmjs.org/package/passport) ## 策略(Strategy) 策略是passport中最重要的概念。passport模塊本身不能做認證,所有的認證方法都以策略模式封裝為插件,需要某種認證時將其添加到package.json即可。 策略模式是一種設計模式,它將算法和對象分離開來,通過加載不同的算法來實現不同的行為,適用于相關類的成員相同但行為不同的場景,比如在passport中,認證所需的字段都是用戶名、郵箱、密碼等,但認證方法是不同的。關于策略模式,本文不詳細展開,想了解的推薦閱讀[Javascript中的策略模式](http://www.oschina.net/translate/strategy-design-pattern-in-javascript),或者[更廣泛意義上的策略模式](http://blog.csdn.net/hguisu/article/details/7558249)。 依據策略模式,passport支持了眾多的驗證方案,包括Basic、Digest、OAuth(1.0,和2.0的三種實現)、Bearer等。 ## passport和everyauth Nodejs中做登錄驗證的有不少,我聽說過的有connect-auth、everyauth、passport,以及Mongoose的插件mongoose-auth。 其中passport和everyauth用的比較多。 everyauth也是基于策略模式,但支持的第三方網站和服務比passport要少些。另外everyauth還涉及到view/route和database,耦合程度比passport高,而passport則更專注。 值得一提的是,passport的作者聲稱正因為他看到[everyauth不能滿足他的一些需求](http://stackoverflow.com/questions/11974947/everyauth-vs-passport-js)所以創建了passport,不過貌似現在everyauth改進了其中的部分缺陷;everyauth的作者則聲稱它的建立是[基于connect-auth的不足](http://stackoverflow.com/questions/5765063/node-js-connect-auth-vs-everyauth)上的。 另外這里有講到[選擇適合的Node.js授權認證策略](http://blog.csdn.net/chszs/article/details/24928985),也講到了兩者的一些不同。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看