首页 > 解决方案 > Nodejs Passportjs 关于使用 Facebook、google 或电子邮件登录的 React 前端的策略的问题

问题描述

正如标题所说,我正在尝试构建一个简单的 Web 应用程序,它具有 3 种不同的登录方式并将 React 作为前端。其中两个是 Google 和 Facebook oauth,最后一个是用户注册的简单电子邮件和护照。我的问题是我应该使用哪些策略?我的猜测是我需要passport-facebook和passport-google-oauth和passport-jwt。但我可能错了。由于我的前端是 React,我什至需要本地护照吗?

标签: node.jsreactjspassport.js

解决方案


你可以同时使用这两种策略。这真的取决于你在做什么。就我个人而言,我总是使用 Google 策略,然后将 accessToken 或其他信息存储在护照会话中。我个人更喜欢使用 Google 方法,因为我们开发的 80% 都大量使用了 Google API 范围(即 Calendar Api、Drive Api)。谷歌策略对我很有用,因为一旦我有了谷歌个人资料数据,我就可以利用这些信息传递给一些谷歌 API 服务。IE:

const getGoogleDriveResources = async (userToken, driveId = 'root') => {
  const oauth2Client = new google.auth.OAuth2();
  oauth2Client.setCredentials({
    'access_token': userToken, // This is the accessToken from passport google authtentication
  });

  const drive = await google.drive({
    version: 'v3',
    auth: oauth2Client,
  });

我希望这对你有用


推荐阅读