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

2. Auth0

虽然这不是一个库,而是一项服务,但这是完成这项工作的一种稳健而快速的方式。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

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

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(用于小型应用)

这不一定是个在你的可扩展平台上管理用户授权的长期解决方案。但是,对于使用 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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,039评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,223评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,916评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,009评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,030评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,011评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,934评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,754评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,202评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,433评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,590评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,321评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,917评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,568评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,738评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,583评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,482评论 2 352

推荐阅读更多精彩内容