NodeJS

Как да упълномощавам потребители, използващи Google OAuth в Node.js

Как да упълномощавам потребители, използващи Google OAuth в Node.js

Open Authorization, известен също като OAuth, е протокол, използван за упълномощаване на потребител на вашия уебсайт с помощта на някаква услуга на трета страна като Google, Github, Facebook и др. Услугата на трета страна споделя някои данни (име, имейл, снимка на профила и т.н.) с вашия уебсайт и след това упълномощава потребителя от негово име, без да управлява паролите и потребителските имена за вашия уебсайт и да спестява на потребителите много допълнителни проблеми.

Как работи OAuth

Когато потребител кликне върху „Вход с Google“, той отвежда потребителя до страницата за съгласие на Google OAuth. Когато потребителят се съгласи със съгласието и удостовери самоличността си в Google, Google ще се свърже с вашия уебсайт като услуга на трета страна и ще упълномощи потребителя от негово име и ще сподели някои данни с вашия уебсайт. По този начин потребителят може да бъде упълномощен, без да управлява идентификационните данни за вашия уеб сайт поотделно.

Внедряване на Google OAuth с помощта на Node.js

Почти всички езици за програмиране предоставят различни библиотеки за внедряване на google oauth за упълномощаване на потребителите. Възел.js предоставя библиотеки „паспорт“ и „паспорт-google-oauth20“ за внедряване на google oauth. В тази статия ще внедрим oauth протокол, за да упълномощим потребителите да използват node.js.

Създайте проект в Google

Първата стъпка за внедряване на Google OAuth е да създадете проект на конзолата за разработчици на google за вашия уебсайт. Този проект се използва за получаване на API ключовете, използвани за отправяне на заявки до Google за открито удостоверяване. Отидете на следната връзка и създайте своя проект.

https: // конзола.разработчици.google.com

Конфигуриране на Google Project

След като създадете проекта, влезте в проекта и изберете „Екран за съгласие за OAuth“ от лявото странично меню.

Кликнете върху бутона „Създаване“ и предоставете всички подробности за вашия проект. Щракнете върху „Запазване и продължаване“, за да продължите напред.

Сега предоставете обхвата на вашия проект. Обхватите са типовете разрешения за достъп до данните на потребителя от акаунт в google. Трябва да настроите разрешенията, за да получавате конкретни потребителски данни от вашия акаунт в Google. Щракнете върху „Запазване и продължаване“.”

Сега добавете тестовите потребители към проекта, ако искате. Тестовите потребители са единствените разрешени потребители, които имат достъп до вашето уеб приложение в режим на тестване. Засега няма да въведем нито един тестов потребител и щракнете върху „Запазване и продължаване“, за да преминете към страницата с резюме на проекта.

Прегледайте проекта си на страницата с резюме и запазете конфигурацията. Сега ще генерираме идентификационни данни за нашия проект. Изберете раздела „Удостоверения“ в лявото меню и кликнете върху бутона „Създаване на идентификационни данни“ отгоре, за да генерирате OAuth 2.0 Клиентски идентификатори.

От падащото меню изберете „OAuth client ID“ и посочете типа на приложението като „Web application“ и името на вашето приложение.

На една и съща страница трябва да предоставим два URI, „Упълномощени Javascript произход“ и „Упълномощени URI пренасочване“. „Оторизиран javascript произход“ е HTTP произход на вашето уеб приложение и той не може да има никакъв път. „Упълномощените URI за пренасочване“ е точният URI с път, където потребителят ще бъде пренасочен след удостоверяване с Google.

След като въведете всички необходими записи, щракнете върху „Създаване“, за да създадете идентификационни данни за OAuth.

Иницииращ възел.js Проект

Досега създадохме проект на google, за да упълномощаваме потребителите за нашето приложение, използвайки google. Сега ще инициираме възела.js проект за внедряване на oauth. Създайте директория с име „auth“ и стартирайте експресния проект.

[имейл защитен]: ~ $ mkdir auth
[имейл защитен]: ~ $ cd auth
[имейл защитен]: ~ $ npm init -y

Инсталиране на необходимите npm пакети

За внедряване на Google OAuth с помощта на възел.js, трябва да инсталираме някои npm пакети. Ще използваме „паспорт“, „експрес“, „път“ и „паспорт-google-oauth20“. Инсталирайте тези пакети, като използвате npm.

[имейл защитен]: ~ $ npm инсталирайте експресен паспорт паспорт-google-oauth20 път

Възел за писане.js код

На първо място, ще напишем две прости html уеб страници, тази с бутон, и ще упълномощим потребителя, когато щракне върху бутона. Втората страница ще бъде упълномощена и потребителят ще бъде пренасочен към упълномощената страница след упълномощаване. Създайте файл 'public / index.html '.



OAuth


Оторизирайте тук

Сега създайте файл „публичен / успешен“.html 'със следното съдържание.



OAuth


Упълномощен



След създаването на уеб страници, сега ще напишем код, за да упълномощим потребителите да използват google oauth. Създайте индекс на файл.js '.

// импортиране на необходимите пакети
const express = require ('express');
const паспорт = изисква ('паспорт');
const path = require ('path');
const GoogleStrategy = require ('паспорт-google-oauth20').Стратегия;
const app = express ();
// дефиниране на параметри
// клиентски идентификатор е параметърът, който ще получим от конзолата за разработчици на google
CLIENT_ID = ”xxxxxxx”;
// тайната на клиента също ще бъде взета от конзолата за разработчици на google
CLIENT_SECRET = ”xxxxx”;
// потребителят ще бъде пренасочен към CALLBACK_URL след упълномощаване
CALLBACK_URL = ”http: // localhost: 8000 / оторизиран”;
// номерът на порта трябва да бъде същият, както е дефиниран в конзолата за програмисти
ПОРТ = 8000;
// конфигуриране на мидълуер за паспорти
ап.използване (паспорт.инициализиране ());
ап.използване (паспорт.сесия());
паспорт.serializeUser (функция (id, готово)
готово (null, id);
);
паспорт.deserializeUser (функция (id, готово)
готово (null, id);
);
// следващият мидълуер ще се изпълнява винаги, когато има паспорт. Извиква се метод за удостоверяване и връща различни параметри, дефинирани в обхвата.
паспорт.използване (нова GoogleStrategy (
clientID: CLIENT_ID,
clientSecret: CLIENT_SECRET,
callbackURL: CALLBACK_URL
,
асинхронна функция (accessToken, refreshToken, профил, имейл, cb)
return cb (null, имейл.документ за самоличност);

));
// обслужваща начална страница за приложението
ап.get ('/', (req, res) =>

Рез.sendFile (път.присъединяване (__ dirname + '/ public / index.html '));
);
// обслужваща страница за успех на приложението
ап.get ('/ успех', (req, res) =>

Рез.sendFile (път.присъединяване (__ dirname + '/ обществено / успех.html '));
);
// потребителят ще бъде пренасочен към страницата на google auth всеки път, когато удари маршрута '/ google / auth'.
ап.get ('/ google / auth',
паспорт.удостоверяване ('google', scope: ['profile', 'email'])
);
// пренасочването на неуспешно удостоверяване е дефинирано в следния маршрут
ап.get ('/ оторизиран'),
паспорт.удостоверяване ('google', failureRedirect: '/'),
(req, res) =>

Резолюция.пренасочване ('/ успех');

);
// работещ сървър
ап.слушайте (PORT, () =>

конзола.log („Сървърът работи на порт“ + PORT)
)

Тестване на Google OAuth

Сега приложението ни е готово и можем да проверим дали то упълномощава потребителите, използвайки google oauth. Отидете в главната директория и стартирайте приложението.

[имейл защитен]: ~ $ индекс на възел.js

Сега въведете URL адреса на приложението си в браузъра.

http: // localhost: 8000

Той показва началната страница с котва етикет.

Когато кликнете върху „Упълномощаване тук“, той ще пренасочи към страницата на google oauth.

Името на вашето приложение „Тест“ се показва на страницата за удостоверяване на Google. Когато упълномощите акаунта си, той ще ви отведе до упълномощената страница.

Заключение

Управлението на потребителски имена и пароли за различни уеб приложения не е щастлива задача за потребителите. Много потребители напускат вашето уеб приложение, без да регистрират акаунта си, само защото не искат да управляват идентификационни данни. Процесът на упълномощаване във вашето уеб приложение или уебсайт може да бъде опростен, като се използват услуги на трети страни като Google, Facebook и др. Тези услуги упълномощават потребителите от тяхно име и няма нужда потребителят да управлява идентификационните данни поотделно. В тази статия внедрихме протокола google oauth, за да разрешим на потребителите да използват Node.js.

Полезни инструменти за геймърите на Linux
Ако искате да играете игри на Linux, има вероятност да сте използвали приложения и помощни програми като Wine, Lutris и OBS Studio, за да подобрите иг...
HD Remastered Games за Linux, които никога преди не са имали издание на Linux
Много разработчици и издатели на игри излизат с HD ремастер на стари игри, за да удължат живота на франчайза, моля феновете, които искат съвместимост ...
Как да използвам AutoKey за автоматизиране на Linux игри
AutoKey е програма за автоматизация на настолни компютри за Linux и X11, програмирана в Python 3, GTK и Qt. Използвайки неговата функционалност за скр...