如何在我的应用程序(nodeJS)中集成 google 身份验证器?
How do I integrate google authenticator in my app(nodeJS)?
我看到一些 Web 应用程序使用 Google 身份验证器(即 6 位数字代码生成器)作为二级安全措施(例如:Binance、Kraken 等)。我正在 google 云平台上制作应用程序,需要它才能使用 Authenticator。
我该怎么做?
N/A
这必须在 nodeJS 服务器上实现
good Example google-authenticator-node-js-web-app
> mkdir back-end
> cd back-end
> npm init -y
> npm install --save express body-parser cors qrcode speakeasy
现在,我们已经创建了一个目录“back-end”,并通过安装以下依赖项将其初始化为 Node.js
项目:
express — 这是一个用于创建 API 服务的最小且灵活的 Web 框架。
body-parser — 为了解析HTTP方法的body数据,正在使用这个包。
cors —— 此包用于使客户端 Web 应用程序能够与 API 服务通信并避免 cross-origin 问题.
qrcode — 在此应用程序中,我们将生成 QR-code 作为 base64 图像数据,因此我们需要 qrcode 包。
speakeasy 这个包使我们的应用程序能够提供 Google 身份验证器使用的密钥和 T-OTP 算法也可用于验证所提供的授权码。
我们现在将创建几个API服务,app.js作为执行的主要文件。为了学习过程的简单,应用的脚手架遵循关注点分离。
一种可能是使用 Rapidapi (endpoint):
您的用户下载 Google 身份验证器应用 https://apps.apple.com/us/app/google-authenticator/id388497605 or https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en&gl=US
您代表您的用户生成一个“秘密”代码:
const request = require('request');
const options = {
method: 'GET',
url: 'https://google-authenticator.p.rapidapi.com/new/',
headers: {
'x-rapidapi-host': 'google-authenticator.p.rapidapi.com',
'x-rapidapi-key': 'rapidapi-guid',
u.seQueryString: true
}
};
request(...);
服务器将 return 您的密码(例如“GXPTBCTI4DX4UFJB”),保留密码,因为您将在第 3 步和第 4 步需要它。
您通过以下方式为您的用户生成二维码:
const options = {
method: 'GET',
url: 'https://google-authenticator.p.rapidapi.com/enroll/',
qs: {secret: 'GXPTBCTI4DX4UFJB', account: 'JohnDoe', issuer: 'AcmeCorp'},
headers: {
'x-rapidapi-host': 'google-authenticator.p.rapidapi.com',
'x-rapidapi-key': 'rapidapi-guid',
useQueryString: true
}
};
request(...);
用户使用 Google 身份验证器应用程序扫描二维码,现在会生成临时代码。
现在您可以通过以下方式验证代码:
const options = {
method: 'GET',
url: 'https://google-authenticator.p.rapidapi.com/validate/',
qs: {code: '266677', secret: 'GXPTBCTI4DX4UFJB'},
headers: {
'x-rapidapi-host': 'google-authenticator.p.rapidapi.com',
'x-rapidapi-key': 'rapidapi-guid',
useQueryString: true
}
};
request(...)
查看完整教程here。
我看到一些 Web 应用程序使用 Google 身份验证器(即 6 位数字代码生成器)作为二级安全措施(例如:Binance、Kraken 等)。我正在 google 云平台上制作应用程序,需要它才能使用 Authenticator。
我该怎么做?
N/A
这必须在 nodeJS 服务器上实现
good Example google-authenticator-node-js-web-app
> mkdir back-end
> cd back-end
> npm init -y
> npm install --save express body-parser cors qrcode speakeasy
现在,我们已经创建了一个目录“back-end”,并通过安装以下依赖项将其初始化为 Node.js
项目:
express — 这是一个用于创建 API 服务的最小且灵活的 Web 框架。 body-parser — 为了解析HTTP方法的body数据,正在使用这个包。
cors —— 此包用于使客户端 Web 应用程序能够与 API 服务通信并避免 cross-origin 问题.
qrcode — 在此应用程序中,我们将生成 QR-code 作为 base64 图像数据,因此我们需要 qrcode 包。
speakeasy 这个包使我们的应用程序能够提供 Google 身份验证器使用的密钥和 T-OTP 算法也可用于验证所提供的授权码。
我们现在将创建几个API服务,app.js作为执行的主要文件。为了学习过程的简单,应用的脚手架遵循关注点分离。
一种可能是使用 Rapidapi (endpoint):
您的用户下载 Google 身份验证器应用 https://apps.apple.com/us/app/google-authenticator/id388497605 or https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en&gl=US
您代表您的用户生成一个“秘密”代码:
const request = require('request'); const options = { method: 'GET', url: 'https://google-authenticator.p.rapidapi.com/new/', headers: { 'x-rapidapi-host': 'google-authenticator.p.rapidapi.com', 'x-rapidapi-key': 'rapidapi-guid', u.seQueryString: true } }; request(...);
服务器将 return 您的密码(例如“GXPTBCTI4DX4UFJB”),保留密码,因为您将在第 3 步和第 4 步需要它。
您通过以下方式为您的用户生成二维码:
const options = { method: 'GET', url: 'https://google-authenticator.p.rapidapi.com/enroll/', qs: {secret: 'GXPTBCTI4DX4UFJB', account: 'JohnDoe', issuer: 'AcmeCorp'}, headers: { 'x-rapidapi-host': 'google-authenticator.p.rapidapi.com', 'x-rapidapi-key': 'rapidapi-guid', useQueryString: true } }; request(...);
用户使用 Google 身份验证器应用程序扫描二维码,现在会生成临时代码。
现在您可以通过以下方式验证代码:
const options = { method: 'GET', url: 'https://google-authenticator.p.rapidapi.com/validate/', qs: {code: '266677', secret: 'GXPTBCTI4DX4UFJB'}, headers: { 'x-rapidapi-host': 'google-authenticator.p.rapidapi.com', 'x-rapidapi-key': 'rapidapi-guid', useQueryString: true } }; request(...)
查看完整教程here。