Express-authing 是一个基于 Express.js 的用户认证和授权 npm 包,它能够帮助我们快速搭建一个安全的 web 应用程序。本文将详细介绍如何使用 express-authing。
安装
npm install express-authing --save
配置
首先,我们需要在 Authing 平台上创建一个应用程序并获取应用程序的 appId
和 secret
。
在 Express.js 中,我们需要使用 express-authing 中的 authing
中间件对请求进行身份验证。使用如下的代码配置中间件:
-- -------------------- ---- ------- ----- ------- - ------------------ ----- ------- - -------------------------- ----- --- - --------- ----------------- ------ -------------- ------- ----------------- ---
使用
在配置完成后,我们可以通过 req.user
获取当前用户的信息,例如:
app.get('/', (req, res) => { console.log(req.user) })
除了 req.user
,我们还可以使用其他几个方法:
1. authenticate
authenticate
方法用于验证用户密码是否正确,如果密码正确,则返回用户信息对象。例如:
-- -------------------- ---- ------- ------------------ ----- ----- ---- -- - ----- - ------ -------- - - -------- --- - ----- ---- - ----- ------------------------------- --------- -------------- - -------- - ------------------------------- - --
2. getCurrentUser
getCurrentUser
方法用于获取当前已登录的用户信息,如果用户没有登录,则返回 null。例如:
app.get('/me', (req, res) => { const user = req.authing.getCurrentUser() if (user) { res.send(user) } else { res.status(401).send('Unauthorized') } })
3. authorize
authorize
方法用于授权访问,例如:
-- -------------------- ---- ------- ----------------- ----- ---- -- - -------------------------------- ----- -- - -- ----- - ---------------------------------------- - ---- - --------------------------- ------- - -- --
在这个例子中,我们使用 authorize
方法来授权访问,只有 Admin
权限的用户才能够访问 /admin
路径。
示例代码
完整的示例代码如下:
-- -------------------- ---- ------- ----- ------- - ------------------ ----- ------- - -------------------------- ----- --- - --------- ----------------------- ----------------- ------ -------------- ------- ----------------- --- ------------ ----- ---- -- - --------------------- -- ------------------ ----- ----- ---- -- - ----- - ------ -------- - - -------- --- - ----- ---- - ----- ------------------------------- --------- -------------- - -------- - ------------------------------- - -- -------------- ----- ---- -- - ----- ---- - ---------------------------- -- ------ - -------------- - ---- - ------------------------------------ - -- ----------------- ----- ---- -- - -------------------------------- ----- -- - -- ----- - ---------------------------------------- - ---- - --------------------------- ------- - -- -- ---------------- -- -- - ------------------- ------- -- ---- ------ --
总结
Express-authing 为我们提供了一个方便快捷的身份验证和授权解决方案。通过使用这个 npm 包,我们可以更加轻松地保护我们的 web 应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668e7d9381d61a3540b7c