來源:公衆號《前端全棧開發者》
「兩週內給我建一個用戶認證系統」是如今研發團隊中常見的一句話。因爲種種緣由,這個任務一直是留給團隊中的一個開發人員去解決的。前端
一方面,你確實不想浪費不少時間。另外一方面,你擔憂這種信息可能最好由本身內部編寫的服務來處理,以便之後更好的擴展。react
隨着網絡上出現新的教程(是一個很好的開始),愈來愈多的團隊試圖瞭解實現本身的解決方案與使用庫或服務的成本效益等式,但願這能夠節省一些時間,並作出更明智的決定。git
Passport不只僅是一個15k星用戶身份驗證庫,它多是JS開發人員使用外部庫進行用戶認證的最多見方式。該庫基本上爲Node.js提供了相對靈活和模塊化的中間件,能夠將其集成到任何基於Express的Web應用程序中。它也是一個社區平臺,支持各類常見的身份驗證,例如用戶名和密碼,Facebook,Twitter等。若是你不想實施本身的解決方案,則多是第一個選擇。github
雖然這不是庫,而是服務,但這是完成工做的可靠而快速的方法。Auth0是一家(頗具規模的)新興公司,爲Web,移動和舊版應用程序提供普遍的通用身份驗證和受權平臺。有人說這是與Plataformatec的Ruby on Rails Devise最接近的解決方案,除了你可使用任何語言鏈接任何應用程序或API。已有超過100個預先創建的集成。後端
Permit是一個1千顆星的項目,旨在爲構建Node.js API提供一個「不受限制的」身份驗證庫。Permit容許你向任何Node.js API添加身份驗證層,而且能夠與Express,Koa,Hapi和Fastify等框架一塊兒使用。它能夠與從REST到GraphQL的多種類型的API一塊兒使用,所以是「非規範化」的設計。Permit旨在專一於API(無狀態請求)和Express之外的支持框架。它也在積極開發中,這使「Permit」成爲一個值得考慮的有趣選擇。api
一個至關新的,頗有前途的庫,爲Express,Koa和Hapi提供OAuth中間件,並提供180多家受支持的提供商和一個實時遊樂場。若是你想將其與本身的私有OAuth提供程序一塊兒使用,則能夠本身指定所需的密鑰。儘管該庫已經開始受到關注(超過1K星),可是資源相對稀缺,所以請謹慎嘗試。網絡
Feathers是一個開源(11K星)的NodeJS實時微服務Web框架,經過RESTful資源、套接字和靈活的插件讓你控制數據。框架
Feathers還提供了認證和認證管理模塊,讓你在本地Feathers認證中增長註冊驗證、遺忘密碼重置等功能。這個想法是在一個靈活的基礎設施中,將不一樣的認證方法結合在一塊兒。模塊化
這可能不必定是在你的擴展平臺中管理用戶受權的長期解決方案(或者是嗎?),可是,對於經過Firebase部署的應用程序來講,這是一種很是有用的方法,能夠快速,輕鬆地完成工做。微服務
Firebase身份驗證提供後端服務,易於使用的SDK和現成的UI庫,以對你的應用程序的用戶進行身份驗證。它支持使用密碼、電話號碼、流行的聯邦身份提供商(如谷歌、Facebook和Twitter)進行身份驗證。