Что такое Auth0? Как я могу интегрировать его в приложение NodeJS?
Что такое Auth0?
Auth0 — это облачная платформа идентификации, которая упрощает аутентификацию и авторизацию пользователей для приложений и API. Он предлагает разработчикам простой способ интегрировать безопасный вход в систему, единый вход и контроль доступа в свое программное обеспечение без необходимости обширной настройки инфраструктуры.
Он использует протокол OIDC (OpenID Connect), построенный поверх OAuth 2.0. Он предоставляет пользователям стандартизированный способ аутентификации и получения доступа к веб-приложениям или службам с использованием существующих учетных записей от поставщиков удостоверений.
Преимущества использования Auth0
- Упрощенная разработка.Auth0 предоставляет встроенные функции проверки подлинности и авторизации, что экономит время и усилия разработчиков при внедрении сложных систем входа с нуля.
- Экспертиза безопасности: Auth0 использует надежные методы обеспечения безопасности и поддерживает современные меры безопасности, защищая учетные данные пользователей и конфиденциальные данные. Это помогает обеспечить соответствие отраслевым стандартам и нормам, избавляя разработчиков от необходимости внедрять и поддерживать безопасные системы аутентификации.
- Интеграция с социальными сетями. Auth0 позволяет пользователям входить в систему, используя свои учетные записи в социальных сетях (например, Google, Facebook), избавляя от необходимости создавать новые учетные данные для входа.
- Единый вход (SSO). Auth0 предлагает функцию единого входа, позволяющую пользователям пройти аутентификацию один раз и получить беспрепятственный доступ к нескольким приложениям.
Создание нашего первого приложения Auth0
После создания учетной записи Auth0 перейдите на панель инструментов и выберите Приложения/Приложения в боковом меню. Нажмите кнопку "Создать приложение".
Там напишите название своего приложения и выберите его тип, в данном случае это будет Обычное веб-приложение.
Теперь перейдите в свое приложение и выберите вкладку Настройки, найдите Разрешенные URL-адреса обратного вызова и Разрешенные URL-адреса выхода, где вы будете вводить показанные направления. ниже (эти направления не существуют, но не волнуйтесь, мы собираемся создать проект для их использования).
Интеграция Auth0 с NodeJS + Express
Создайте приложение NodeJS:
npm init
Установите необходимые пакеты express и express-openid-connect:
npm install dotenv express express-openid-connect --save
Создайте файл с именем app.js, используя следующий код:
const express = require("express"); const { auth } = require("express-openid-connect"); require("dotenv").config(); const port = process.env.PORT; const config = { authRequired: false, auth0Logout: true, secret: process.env.SECRET, baseURL: process.env.BASEURL, clientID: process.env.CLIENTID, issuerBaseURL: process.env.ISSUER, }; const app = express(); app.set("view engine", "ejs"); app.use(express.urlencoded({ extended: true })); // auth router attaches /login, /logout, and /callback routes to the baseURL app.use(auth(config)); // req.isAuthenticated is provided from the auth router app.get("/", (req, res) => { console.log(req.oidc.isAuthenticated()); const isAuthenticated = req.oidc.isAuthenticated(); const response = isAuthenticated ? req.oidc.user : "Not logged in"; res.send(response); }); app.listen(port);
Затем создайте файл .env и поместите значения из вкладки «Настройки» вашего приложения Auth0:
PORT=3000 SECRET=somerandomstring BASEURL=http://localhost:3000 #Get this value from your Auth0 "Client ID" field CLIENTID=XXXXX # Replace the X's with the value from your Auth0 "Domain" field ISSUER=https://XXXXX
Теперь выполните следующую команду, чтобы запустить приложение:
node app.js
Перейдите в браузер и введите URL-адрес локального приложения. Вы увидите сообщение о том, что нам все еще нужно войти в систему:
Чтобы войти, перейдите по адресу localhost:3000/login, появится экран входа Auth0, как показано ниже. Там зарегистрируйтесь изатем войдите с теми же учетными данными.
Если все пойдет хорошо, вы будете перенаправлены на свою домашнюю страницу, где будет отображаться информация о пользователе:
Если вы хотите выйти, просто перейдите по адресу localhost:3000/logout,ваш браузер должен перенаправить вас на домашнюю страницу, снова отобразив сообщение «Вы не вошли в систему». ” сообщение.