как проверить статус аутентификации пользователя на стороне сервера - PullRequest
0 голосов
/ 20 февраля 2019

Я хочу проверить аутентификацию пользователя перед отображением html-страницы

мой файл server.js похож на этот

const express = require('express');
var jquery = require('jquery');
var admin = require("firebase");

const app = express();

app.use(express.static(__dirname + '/public'));



var serviceAccount = require("firebasekey.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://23442344114.firebaseio.com"
});

var ref = admin.app().database().ref();
 

app.get(['/','/index.html'], function(req, res) {
	res.sendFile(__dirname + '/public/index.html');
 
 });


app.get(['/dash' ], function(req, res) {
	res.sendFile(__dirname + '/public/dash/index.html');
  
 });
 
 

Как я могу проверить, проходит ли проверка подлинности пользователя сначала на стороне сервера, прежде чем отображать страницу;например,

 app.get(['/dash' ], function(req, res) {
      //check if the user is authenticated

     if auth == true {
    res.sendFile(__dirname + '/public/dash/index.html');
     } else{
            res.sendFile(__dirname + '/public/login.html');

     }

 });

как проверить статус аутентификации пользователя на стороне сервера?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Как и предполагалось, существует множество способов аутентификации ваших пользователей.Но я помогу вам с простым примером:

  1. У вас должен быть постоянный список ваших пользователей, например, база данных.Для простоты мы будем использовать константу в вашем коде.
const express = require('express');
var jquery = require('jquery');
var admin = require("firebase");

const USER = {
    email: "john@doe.com",
    password: "12345"
}

Существует несколько способов проверки подлинности.Я бы порекомендовал использовать промежуточное ПО, которое можно применять к различным маршрутам:
const authenticate = (req, res, next) => {
    // parse the user out of your request
    // e.g with bodyparser -> see npm
    if (req.body.email === USER.email && req.body.password === USER.password) {
        next()
    } else {
        res.send({ status: 401 });
    }
}

Примените это промежуточное ПО к маршрутам, которые вы хотите защитить, или ко всем маршрутам
// all routes
app.use(authenticate)

// certain route
app.get('/someRoute', authenticate, (req, res)) => {
    // only successful authenticated user
    // (in this case: john@doe.com) will
    // have access to this route.
    // ... code
}

Этот шаблон можно расширить, например, с помощью файлов cookie, jwt и, конечно, базы данных, в которой вы можете хранить свои зарегистрированныепользователи.

0 голосов
/ 20 февраля 2019

Вы должны прочитать о методах аутентификации, таких как JWT и OAuth.Вы можете использовать промежуточное программное обеспечение, чтобы проверить, аутентифицирован ли конкретный пользователь или нет.Вы можете библиотеки как паспорт для этого.Вы можете создать свое собственное промежуточное ПО на уровне маршрутизатора следующим образом.

let middleware = function (req, res, next) {
   //Do your checking...
   next();
};

app.get(['/dash' ],middleware, function(req, res) {
   //check if the user is authenticated

   if auth == true {
       res.sendFile(__dirname + '/public/dash/index.html');
   } else {
       res.sendFile(__dirname + '/public/login.html');
   }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...