我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Node.js 中的 OAuth 认证:分步教程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Node.js 中的 OAuth 认证:分步教程

简介: OAuth(开放授权)是一种流行的认证协议,允许用户安全地授权第三方应用程序访问其在线账户。本文将提供一个分步指南,展示如何在 Node.js 应用中实现 OAuth 认证,并以 Google 和 Facebook 为例。

实现 OAuth 认证的步骤:

1. 安装必要的包:

npm install passport passport-google-oauth20 passport-facebook

2. 配置 OAuth 客户端:

在 Google 开发者控制台和 Facebook 开发者门户中创建 OAuth 客户端,获取客户端 ID 和客户端密钥。

3. 设置 Passport.js 中间件:

const passport = require("passport");

app.use(passport.initialize());
app.use(passport.session());

4. 序列化和反序列化用户:

passport.serializeUser(function(user, done) {
  done(null, user);
});

passport.deserializeUser(function(obj, done) {
  done(null, obj);
});

5. 配置 Google OAuth 策略:

const GoogleStrategy = require("passport-google-oauth20").Strategy;

passport.use(new GoogleStrategy({
  clientID: process.env.GOOGLE_CLIENT_ID,
  clientSecret: process.env.GOOGLE_CLIENT_SECRET,
  callbackURL: "http://localhost:3000/auth/google/callback"
},
function(accessToken, refreshToken, profile, cb) {
  return cb(null, profile);
}));

6. 配置 Facebook OAuth 策略:

const FacebookStrategy = require("passport-facebook").Strategy;

passport.use(new FacebookStrategy({
  clientID: process.env.FACEBOOK_CLIENT_ID,
  clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
  callbackURL: "http://localhost:3000/auth/facebook/callback"
},
function(accessToken, refreshToken, profile, cb) {
  return cb(null, profile);
}));

7. 设置路由:

app.get("/auth/google", passport.authenticate("google", { scope: ["email", "profile"] }));
app.get("/auth/facebook", passport.authenticate("facebook", { scope: ["email"] }));

app.get("/auth/google/callback", passport.authenticate("google", { failureRedirect: "/login" }),
  (req, res) => {
    res.redirect("/");
  }
);

app.get("/auth/facebook/callback", passport.authenticate("facebook", { failureRedirect: "/login" }),
  (req, res) => {
    res.redirect("/");
  }
);

8. 保护路由:

app.get("/protected", ensureAuthenticated, (req, res) => {
  res.send("You are authenticated.");
});

function ensureAuthenticated(req, res, next) {
  if (req.isAuthenticated()) {
    return next();
  }
  res.redirect("/login");
}

自定义用户对象(可选):

passport.serializeUser(function(user, cb) {
  cb(null, user.id);
});

passport.deserializeUser(function(id, cb) {
  User.findById(id, function (err, user) {
    cb(err, user);
  });
});

结论:

遵循这些步骤,您可以在 Node.js 应用中轻松地实现 OAuth 认证。通过使用 Google 和 Facebook 策略,您可以轻松地允许用户使用他们的现有账户登录您的应用程序,从而提高用户体验和便捷性。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Node.js 中的 OAuth 认证:分步教程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Node.js 中的 OAuth 认证:分步教程

OAuth 认证在 Node.js 中的实现:分步指南
Node.js 中的 OAuth 认证:分步教程
2024-02-19

解密 Node.js 中的认证与授权:一个深入的分析

在 Node.js 应用中实施认证和授权至关重要,可以保护敏感数据和防止未经授权的访问。本文深入分析了这两个概念,提供了一个全面的指南,涵盖最佳实践、工具和实施示例。
解密 Node.js 中的认证与授权:一个深入的分析
2024-02-16

思科认证教程之详细分析交换的极致

  交换就是在用户间有目的地传递信息,数据交换就是数据转接。交换网络是完成语音或者数据交换的网络,是电信基础设施,包括语音交换网络和数据交换网络。现在小编给大家带来的教程是:思科认证教程之详细分析交换的极致。  一、背景介绍  大家可以看到,交换技术正在朝着两个方向发展。一个方向就是速度愈来愈快,已经从千兆跳跃到万兆。
思科认证教程之详细分析交换的极致
2024-04-18

WPF:在 MVVM 中绑定 TreeView 的分步教程

以下是在MVVM中绑定TreeView的分步教程:步骤1:创建一个新的WPF项目。在项目中添加一个ViewModel类和一个Model类。ViewModel类将包含用于绑定TreeView的数据和命令,而Model类将包含实际的数据。步骤2
2023-09-26

编程热搜

目录