來源:公眾號《前端全棧開發者》
“兩周內給我建一個用戶認證系統”是現在研發團隊中常見的一句話。由于種種原因,這個任務一直是留給團隊中的一個開發人員去解決的。
一方面,你確實不想浪費很多時間。另一方面,你擔心這種信息可能最好由自己內部編寫的服務來處理,以便以后更好的擴展。
隨著網絡上出現新的教程(是一個很好的開始),越來越多的團隊試圖了解實現自己的解決方案與使用庫或服務的成本效益等式,希望這可以節省一些時間,并做出更明智的決定。
1. Passport JS
https://github.com/jaredhanson/passport
Passport不僅僅是一個15k星用戶身份驗證庫,它可能是JS開發人員使用外部庫進行用戶認證的最常見方式。該庫基本上為Node.js提供了相對靈活和模塊化的中間件,可以將其集成到任何基于Express的Web應用程序中。它也是一個社區平臺,支持各種常見的身份驗證,例如用戶名和密碼,Facebook,Twitter等。如果你不想實施自己的解決方案,則可能是第一個選擇。
2. Auth0
https://auth0.com/
雖然這不是庫,而是服務,但這是完成工作的可靠而快速的方法。Auth0是一家(頗具規模的)新興公司,為Web,移動和舊版應用程序提供廣泛的通用身份驗證和授權平臺。有人說這是與Plataformatec的Ruby on Rails Devise最接近的解決方案,除了你可以使用任何語言連接任何應用程序或API。已有超過100個預先建立的集成。
3. Permit
https://github.com/ianstormtaylor/permit
Permit是一個1千顆星的項目,旨在為構建Node.js API提供一個“不受限制的”身份驗證庫。Permit允許你向任何Node.js API添加身份驗證層,并且可以與Express,Koa,Hapi和Fastify等框架一起使用。它可以與從REST到GraphQL的多種類型的API一起使用,因此是“非規范化”的設計。Permit旨在專注于API(無狀態請求)和Express以外的支持框架。它也在積極開發中,這使“Permit”成為一個值得考慮的有趣選擇。
4. Grant
https://github.com/simov/grant
一個相當新的,很有前途的庫,為Express,Koa和Hapi提供OAuth中間件,并提供180多家受支持的提供商和一個實時游樂場。如果你想將其與自己的私有OAuth提供程序一起使用,則可以自己指定所需的密鑰。盡管該庫已經開始受到關注(超過1K星),但是資源相對稀缺,因此請謹慎嘗試。
5. Feathers 認證管理
https://github.com/feathers-plus/feathers-authentication-management
Feathers是一個開源(11K星)的NodeJS實時微服務Web框架,通過RESTful資源、套接字和靈活的插件讓你控制數據。
Feathers還提供了認證和認證管理模塊,讓你在本地Feathers認證中增加注冊驗證、遺忘密碼重置等功能。這個想法是在一個靈活的基礎設施中,將不同的認證方法結合在一起。
6. 只需使用Firebase身份驗證(適用于小型應用程序)
https://blog.bitsrc.io/react-oauth-authentication-with-firebase-dfe0e8c5d0d4
這可能不一定是在你的擴展平臺中管理用戶授權的長期解決方案(或者是嗎?),但是,對于通過Firebase部署的應用程序來說,這是一種非常有用的方法,可以快速,輕松地完成工作。
Firebase身份驗證提供后端服務,易于使用的SDK和現成的UI庫,以對你的應用程序的用戶進行身份驗證。它支持使用密碼、電話號碼、流行的聯邦身份提供商(如谷歌、Facebook和Twitter)進行身份驗證。