📜  Cloudrail-社交登录(1)

📅  最后修改于: 2023-12-03 15:30:01.547000             🧑  作者: Mango

Cloudrail - 社交登录

Cloudrail是一个用于实现社交登录的中间件,开发者可以使用它集成Facebook、Google、LinkedIn、GitHub等社交平台的登录功能。使用Cloudrail,开发者无需关注每个社交平台的API变更以及维护多个OAuth连接,可以在同一个包中使用多个不同的平台进行登录验证。

功能特点
  • 一次性集成多个OAuth平台,如Facebook、Google、LinkedIn、GitHub等;
  • 通过简单的API快速实现社交登录;
  • 自动生成Access Token ,简化开发流程;
  • 无需考虑Facebook API变化,Cloudrail会自动适应最新的API;
  • 支持OAuth 1.0,OAuth2和OpenIDConnect协议适配;
  • 支持多种编程语言,如Java、Python、Ruby等;
  • 具有广泛的社区支持并定期更新。
使用方法
安装Cloudrail

您可以使用以下命令之一在项目中添加Cloudrail:

npm install cloudrail-si

或者

yarn add cloudrail-si
集成社交平台

在安装了Cloudrail库之后,你需要在你的代码中为每个你想使用的社交平台注册一个实例。在这里,我们以Facebook为例:

const cloudrail = require("cloudrail-si");

cloudrail.Settings.setKey("[YOUR_CLOUDRAIL_API_KEY]");

const facebook = new cloudrail.services.Facebook(
  null,                         // Redirect URI will be automatically generated
  "[FACEBOOK_CLIENT_ID]",
  "[FACEBOOK_CLIENT_SECRET]",
  "[https://graph.facebook.com/v2.12/user-info]"
);

在上面的代码中,你需要替换以下内容:

  1. [YOUR_CLOUDRAIL_API_KEY],这是一个您需要从CloudRail获得的API密钥。
  2. [FACEBOOK_CLIENT_ID],这是您在Facebook Developer中注册的应用的Client ID。
  3. [FACEBOOK_CLIENT_SECRET],这是您在Facebook Developer中注册的应用的Client Secret。
实现社交登录

有了上面的基础设置后,你就可以在代码中实现社交登录功能。在这里,我们以Express.js为例:

const cloudrail = require("cloudrail-si");
const express = require("express");

cloudrail.Settings.setKey("[YOUR_CLOUDRAIL_API_KEY]");

const app = express();
const facebook = new cloudrail.services.Facebook(
  null,
  "[FACEBOOK_CLIENT_ID]",
  "[FACEBOOK_CLIENT_SECRET]",
  "[https://graph.facebook.com/v2.12/user-info]"
);

app.get("/auth/facebook", (req, res) => {
  const redirectUrl = facebook.getAuthorizationUrl({
    state: "myState"
  });
  // redirect to redirectUrl
});

app.get("/oauth-callback", async (req, res) => {
  const authCode = req.query.code;
  const state = req.query.state;
  const redirectUrl =
    "http://localhost:3000/oauth-callback?state=" + state;

  const auth = await facebook.exchangeAuthorizationCode(authCode, redirectUrl);
  // do something
});

在上面的代码中,你需要替换以下内容:

  1. [YOUR_CLOUDRAIL_API_KEY],这是一个您需要从CloudRail获得的API密钥。
  2. [FACEBOOK_CLIENT_ID],这是您在Facebook Developer中注册的应用的Client ID。
  3. [FACEBOOK_CLIENT_SECRET],这是您在Facebook Developer中注册的应用的Client Secret。
更多社交平台

Cloudrail还支持其他众多社交平台的集成,除了Facebook之外,例如:

  1. Google
  2. LinkedIn
  3. GitHub

你可以通过以下方式注册其他社交平台:

const cloudrail = require("cloudrail-si");

const google = new cloudrail.services.Google(
  "[GOOGLE_CLIENT_ID]",
  "[GOOGLE_CLIENT_SECRET]",
  "http://localhost:3000/oauth-callback"
);

const linkedIn = new cloudrail.services.LinkedIn(
  "[LINKEDIN_CLIENT_ID]",
  "[LINKEDIN_CLIENT_SECRET]",
  "http://localhost:3000/oauth-callback"
);

const gitHub = new cloudrail.services.GitHub(
  "[GITHUB_CLIENT_ID]",
  "[GITHUB_CLIENT_SECRET]",
  "http://localhost:3000/oauth-callback"
);
总结

CloudRail是一个避免开发者重新发明轮子的好助手。使用CloudRail,你可以轻松进行集成社交平台的工作,避免因为API变化而导致的不必要的代码更新。CloudRail的社区支持也保证了它的更新和稳定。