2019 年流行的 6 个 JavaScript 用户认证库

2019 年流行的 6 个 JavaScript 用户认证库

原文链接:https://blog.bitsrc.io/6-javascript-user-authentication-libraries-for-2019-6c7c45fbe458

“在两周内为我建立一个用户-认证应用!” - 有用的方法把工作做完,快速而简单。

“两周之内为我建立一个用户认证系统”是当今研发团队的一个常用短语。出于各种原因,这个任务一直是团队中的一个开发人员需要解决的问题之一。

一方面,你真的不想浪费很多时间做这件事。另一方面,您担心这类信息由您自己内部编写的服务来处理可能会更好,以便以后更好地扩展。

随着新的教程出现在网络上(这是一个好的开始),越来越多的团队试图理解实现他们自己的解决方案,或者使用库或服务的成本-收益平衡。我已经收集了一份关于现有内容的简短评论。希望这有助于节省一些时间,并做出更明智的决定。请随意评论并分享你自己的见解。

1. Passport JS

Passport 不仅是一个有 15k 星的 user-auth 库,它可能是 JS 开发人员使用外部库进行用户认证的最常见方式。这个库基本上为 node.js 提供了相对灵活和模块化的中间件,可以集成到任何基于 Express 的 web 应用程序中。它也是一个社区平台,支持各种常见认证,如用户名和密码、Facebook、Twitter 等。如果你不想实现你自己的解决方案,这可能是你的第一个选择。不过,请注意这些常见的错误要避免。

jaredhanson/passport
Simple, unobtrusive authentication for Node.js. Contribute to jaredhanson/passport development by creating an account…
github.com

  • 配合 Express: https://github.com/expressjs/session

2. Auth0

2019 年流行的 6 个 JavaScript 用户认证库_第1张图片

虽然这不是一个库,而是一项服务,但这是完成这项工作的一种稳健而快速的方式。auth0 是一家(相当大的)初创公司,为 web、移动和传统应用程序提供了广泛的通用认证和授权平台。有人说这最接近基于 Ruby On Rails 的Platafomatec 的解决方案,除了你可以用任何语言连接任何应用程序或 API。有超过 100 个预先构建的集成,这是一个基于 node.js 的 quick-strart。

Never Compromise on Identity. — Auth0
Auth0 is the solution you need for web, mobile, IoT, and internal applications. Loved by developers and trusted by…
auth0.com

3. Permit

2019 年流行的 6 个 JavaScript 用户认证库_第2张图片

Permit 是一个有 1K 个星的项目,旨在为构建 Node.js API 提供一个“非个性化”的认证库。Permit 允许您向任何 Node.js API 添加认证层,并且可以与 Express、Koa、Hapi 和 Fastify 等框架一起使用。它可以与从 REST 到 GraphQL 的多种类型的 API 一起使用,因此是“非个性化”的设计。Permit 旨在关注 API (无状态请求)和 Express 以外的支持框架。它也正在被积极开发,这使得 Permit 成为一个可以考虑的有趣选择。绝对值得关注这个。

ianstormtaylor/permit
An unopinionated authentication library for building Node.js APIs. — ianstormtaylor/permit
github.com

看例子。这里有一个配合 Express 的:

import { Bearer } from 'permit';
import express from 'express';

const permit = new Bearer({
  basic: 'username', // Also allow a Basic Auth username as a token.
  query: 'access_token', // Also allow an `?access_token=` query parameter.
});

function authenticate(req, res, next) {
  // Try to find the bearer token in the request.
  const token = permit.check(req);

  // No token found, so ask for authentication.
  if (!token) {
    permit.fail(res);
    return next(new Error(`Authentication required!`));
  }

  // Perform your authentication logic however you'd like...
  db.users.findByToken(token, (err, user) => {
    if (err) return next(err);

    // No user found, so their token was invalid.
    if (!user) {
      permit.fail(res);
      return next(new Error(`Authentication invalid!`));
    }

    // Authentication succeeded, save the context and proceed...
    req.user = user;
    next();
  });
}

const app = express();

app.get('/', (req, res) => {
  res.send('Some unrestricted content.');
});

app.get('/restricted', authenticate, (req, res) => {
  res.send('Restricted content!');
});

app.listen(3000);

4. Grant

一个相当新的、有前景的库,为 Express、Koa 和 Hapi 提供 OAuth 中间件——有超过180 家受支持的提供商和一个live palyground。如果你想和你自己的私人 OAuth 提供商一起使用,你可以自己指定所需的密钥。尽管这个图书馆已经开始受到关注( + 1K 颗星),但资源相对稀缺,所以请小心尝试。

simov/grant
OAuth Middleware for Express, Koa and Hapi. Contribute to simov/grant development by creating an account on GitHub.
github.com

5. Feathers authentication management

2019 年流行的 6 个 JavaScript 用户认证库_第3张图片
image.png

Feathers是 NodeJS 的开源实时微服务 Web 框架(11K 星),通过 RESTful 资源、套接字和灵活插件,您可以控制数据。

Feathers 还提供了身份验证和身份验证管理模块,允许您在本地 Feathers 身份验证中添加注册验证、忘记密码重置和其他功能。这个想法是在一个灵活的基础设施中,将不同的认证方法结合在一个屋檐下。这里有一个step-by-step 的指南来帮助你开始。

feathersjs/authentication
Feathers local, token, and OAuth authentication over REST and Websockets using JSON Web Tokens (JWT) with PassportJS. …
github.com

feathers-plus/feathers-authentication-management
Adds sign up verification, forgotten password reset, and other capabilities to local feathers-authentication …
github.com

6. 只是有 Firebase Authentication(用于小型应用)

2019 年流行的 6 个 JavaScript 用户认证库_第4张图片

这不一定是个在你的可扩展平台上管理用户授权的长期解决方案。但是,对于使用 Firebase 部署的应用程序来说,这是一种非常有用的方式,可以快速简单地完成工作。

Firebase Authentication 提供后端服务、易于使用的 SDK 和现成的 UI 库,以向您的应用程序验证用户。它支持使用密码、电话号码、流行的联合身份提供商(如谷歌、Facebook 和 Twitter )进行身份验证。在这里了解更多信息。

这里有一个非常好的教程,用于构建一个反应应用程序,该应用程序利用 Firebase 对 Facebook、Twitter 和 GitHub 进行用户认证:

React OAuth Authentication with Firebase
We build an awesome React app with Firebase to consume OAuth Authentication with GitHub, Twitter and Facebook
blog.bitsrc.io

这里有一个类似的教程,用于构建具有 Firebase 认证的 Vue.js 应用程序:

Build a Vue App with Firebase Authentication and Database
A short yet detailed guide to building a simple Vue app with Firebase for Authentication and Firestore for Database.
blog.bitsrc.io

关于 MERN 堆栈( 3 部系列) :

Build a Login/Auth App with MERN Stack- Part 1
Create a (minimal) full-stack app with user authentication via passport and JWTs.
blog.bitsrc.io

你可能感兴趣的:(2019 年流行的 6 个 JavaScript 用户认证库)