KnotenJS

So autorisieren Sie Benutzer mit Google OAuth in Node.js

So autorisieren Sie Benutzer mit Google OAuth in Node.js

Open Authorization, auch bekannt als OAuth, ist ein Protokoll, das verwendet wird, um einen Benutzer auf Ihrer Website mithilfe von Drittanbieterdiensten wie Google, Github, Facebook usw. zu autorisieren. Der Drittanbieterdienst teilt einige Daten (Name, E-Mail, Profilbild usw.).) mit Ihrer Website und autorisiert dann den Benutzer in seinem Namen, ohne die Passwörter und Benutzernamen für Ihre Website zu verwalten und den Benutzern viel zusätzliche Mühe zu ersparen.

So funktioniert OAuth

Wenn ein Benutzer auf „Login with Google“ klickt, wird der Benutzer auf die Google OAuth-Zustimmungsseite weitergeleitet. Wenn der Nutzer der Einwilligung zustimmt und seine Identität bei Google authentifiziert, nimmt Google als Drittanbieter-Dienst mit Ihrer Website Kontakt auf und autorisiert den Nutzer in seinem Namen und gibt einige Daten an Ihre Website weiter. Auf diese Weise kann der Benutzer autorisiert werden, ohne die Zugangsdaten für Ihre Website separat zu verwalten.

Implementieren von Google OAuth mit Node.js

Fast alle Programmiersprachen bieten verschiedene Bibliotheken, um Google oauth zu implementieren, um Benutzer zu autorisieren. Knoten.js bietet die Bibliotheken 'passport' und 'passport-google-oauth20', um google oauth zu implementieren. In diesem Artikel implementieren wir ein OAuth-Protokoll, um Benutzern die Autorisierung von Node . zu ermöglichen.js.

Erstellen Sie ein Projekt bei Google

Der erste Schritt zur Implementierung von Google OAuth besteht darin, ein Projekt in der Google Developer Console für Ihre Website zu erstellen. Dieses Projekt wird verwendet, um die API-Schlüssel abzurufen, die verwendet werden, um Anfragen an Google für eine offene Authentifizierung zu stellen. Gehen Sie auf den folgenden Link und erstellen Sie Ihr Projekt.

https://konsole.Entwickler.Google.com

Google-Projekt konfigurieren

Nachdem Sie das Projekt erstellt haben, gehen Sie in das Projekt und wählen Sie "OAuth-Zustimmungsbildschirm" aus dem Menü auf der linken Seite.

Klicken Sie auf die Schaltfläche "Erstellen" und geben Sie alle Details Ihres Projekts an. Klicken Sie auf „Speichern und fortfahren“, um fortzufahren.

Geben Sie jetzt den Umfang Ihres Projekts an. Bereiche sind die Arten von Berechtigungen für den Zugriff auf die Daten des Benutzers von einem Google-Konto. Sie müssen die Berechtigungen einrichten, um bestimmte Benutzerdaten von Ihrem Google-Konto abzurufen. Klicken Sie auf „Speichern und fortfahren.”

Fügen Sie nun die Testbenutzer zum Projekt hinzu, wenn Sie möchten. Testbenutzer sind die einzigen berechtigten Benutzer, die im Testmodus auf Ihre Webanwendung zugreifen können. Vorerst geben wir keinen Testbenutzer ein und klicken auf „Speichern und fortfahren“, um zur Übersichtsseite des Projekts zu gelangen.

Überprüfen Sie Ihr Projekt auf der Übersichtsseite und speichern Sie die Konfiguration. Jetzt werden wir Anmeldeinformationen für unser Projekt generieren. Wählen Sie die Registerkarte "Anmeldeinformationen" im Menü auf der linken Seite und klicken Sie oben auf die Schaltfläche "Anmeldeinformationen erstellen", um OAuth 2 zu generieren.0 Kunden-IDs.

Wählen Sie im Dropdown-Menü "OAuth-Client-ID" aus und geben Sie den Anwendungstyp als "Webanwendung" und den Namen Ihrer Anwendung an.

Auf derselben Seite müssen wir zwei URIs bereitstellen, die 'Authorized Javascript Origins' und die 'Authorized Redirect URIs'. Der 'Autorisierte Javascript-Ursprung' ist der HTTP-Ursprung Ihrer Webanwendung und darf keinen Pfad haben. Die 'Autorisierten Weiterleitungs-URIs' sind die genauen URIs mit einem Pfad, an den der Benutzer nach der Google-Authentifizierung umgeleitet wird.

Nachdem Sie alle erforderlichen Einträge eingegeben haben, klicken Sie auf "Erstellen", um OAuth-Anmeldeinformationen zu erstellen.

Initiierender Knoten.js-Projekt

Bisher haben wir ein Google-Projekt erstellt, um Benutzer für unsere Anwendung mit Google zu autorisieren. Jetzt werden wir den Knoten initiieren.js-Projekt zur Implementierung von oauth. Erstellen Sie ein Verzeichnis namens 'auth' und starten Sie das Express-Projekt.

[email protected]:~$ mkdir auth
[email protected]:~$ cd auth
[email protected]:~$ npm init -y

Erforderliche npm-Pakete installieren

So implementieren Sie Google OAuth mithilfe von node.js müssen wir einige npm-Pakete installieren. Wir verwenden 'passport', 'express', 'path' und 'passport-google-oauth20'. Installieren Sie diese Pakete mit npm.

[email protected]:~$ npm Express Passport Passport-google-oauth20 Pfad installieren

Schreibender Knoten.js-Code

Zuerst schreiben wir zwei einfache HTML-Webseiten, die mit einem Button, und autorisieren den Benutzer, wenn er auf den Button klickt. Die zweite Seite wird autorisiert und der Benutzer wird nach der Autorisierung auf die autorisierte Seite weitergeleitet. Erstellen Sie eine Datei 'public/index.html'.



OAuth


Hier autorisieren

Erstellen Sie nun eine Datei 'public/success.html' mit folgendem Inhalt.



OAuth


Autorisiert



Nachdem wir Webseiten erstellt haben, schreiben wir jetzt Code, um die Benutzer zu autorisieren, Google oauth zu verwenden. Erstellen Sie eine Datei 'index'.js'.

// erforderliche Pakete importieren
const express = require('express');
const pass = require('passport');
const path = require('Pfad');
const GoogleStrategy = require('passport-google-oauth20').Strategie;
const app = express();
// Parameter definieren
// Client-ID ist der Parameter, den wir von der Google Developer Console erhalten
CLIENT_ID=”xxxxxxx”;
// Client-Geheimnis wird auch aus der Google-Entwicklerkonsole entnommen
CLIENT_SECRET=”xxxxx”;
// Benutzer wird nach Autorisierung auf die CALLBACK_URL umgeleitet
CALLBACK_URL=”http://localhost:8000/authorized”;
// Portnummer muss mit der Definition in der Entwicklerkonsole übereinstimmen
ANSCHLUSS=8000;
// Passport-Middleware konfigurieren
App.verwenden (Reisepass).initialisieren());
App.verwenden (Reisepass).Session());
Reisepass.serializeUser( function(id, done)
done(null, id);
);
Reisepass.deserializeUser( function(id, done)
done(null, id);
);
// Folgende Middleware wird immer ausgeführt, wenn Passport. Authenticate-Methode wird aufgerufen und gibt verschiedene Parameter zurück, die im Geltungsbereich definiert sind.
Reisepass.use(neue GoogleStrategy(
clientID: CLIENT_ID,
clientSecret: CLIENT_SECRET,
RückrufURL: CALLBACK_URL
,
asynchrone Funktion (accessToken, refreshToken, Profil, E-Mail, cb)
cb zurückgeben (null, E-Mail).Ich würde);

));
// Bereitstellung der Homepage für die Anwendung
App.get('/', (req, res) =>

res.sendFile(Pfad.join(__dirname + '/public/index.html'));
);
// Serving-Erfolgsseite für die Anwendung
App.get('/erfolg', (req, res) =>

res.sendFile(Pfad.join(__dirname + '/public/success.html'));
);
// Der Benutzer wird auf die Google-Authentifizierungsseite umgeleitet, wenn er die Route '/google/auth' trifft.
App.get('/google/auth',
Reisepass.authentifizieren('google', scope: ['profile', 'email'])
);
// Die Umleitung eines Authentifizierungsfehlers ist in der folgenden Route definiert
App.get('/autorisiert',
Reisepass.authentifizieren('google', failureRedirect: '/'),
(req, res) =>

res.umleiten('/Erfolg');

);
// laufender Server
App.hören(PORT, () =>

Konsole.log("Server läuft auf Port" + PORT)
)

Testen von Google OAuth

Jetzt ist unsere Anwendung fertig und wir können testen, ob sie die Benutzer mit google oauth autorisiert using. Gehen Sie in das Stammverzeichnis und führen Sie die Anwendung aus.

[email protected]:~$ Knotenindex.js

Geben Sie nun die URL Ihrer Anwendung in den Browser ein.

http://localhost:8000

Es zeigt die Startseite mit einem Anker-Tag.

Wenn wir auf "Hier autorisieren" klicken, wird auf die Google-Oauth-Seite weitergeleitet.

Ihr Anwendungsname "Test" wird auf der Google-Authentifizierungsseite angezeigt. Wenn Sie Ihr Konto autorisieren, werden Sie auf die autorisierte Seite weitergeleitet.

Fazit

Die Verwaltung von Benutzernamen und Passwörtern für verschiedene Webanwendungen ist für Benutzer keine glückliche Aufgabe. Viele Benutzer verlassen Ihre Webanwendung, ohne ihr Konto zu registrieren, nur weil sie keine Anmeldeinformationen verwalten möchten. Der Autorisierungsprozess in Ihrer Webanwendung oder Website kann durch die Verwendung von Drittanbieterdiensten wie Google, Facebook usw. vereinfacht werden. Diese Dienste autorisieren Benutzer in ihrem Namen, und der Benutzer muss die Anmeldeinformationen nicht separat verwalten. In diesem Artikel haben wir das Google-Oauth-Protokoll implementiert, um Benutzern die Autorisierung von Node . zu ermöglichen.js.

So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...
Open-Source-Ports kommerzieller Spiele-Engines
Kostenlose, quelloffene und plattformübergreifende Spiel-Engine-Nachbildungen können verwendet werden, um sowohl alte als auch einige der relativ neue...
Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...