Приложение моего приложения MEAN использует Azure AD для аутентификации. Я использую «паспорт-азуре-объявление» модуль для аутентификации веб-api. На основании post & reply here я понял, чтопаспорт-азуре-объявление, он анализирует и проверяет токен?
Если пользователь уже заверен клиента (UI), то для каждого вызова API, клиент также отправит маркер на сервер. А затем на сервере мы можем использовать стратегию переноса для «Авторизовать» доступ пользователя к API.
Теперь в моем сценарии я просто хотел удостовериться, что пользователь аутентифицирован, и если он тогда разрешит ему получить доступ к API.
Вопрос
1. Когда сервер выполняет метод «passport.authenticate („OAuth-носитель“)», будет паспорта-лазурь-объявления автоматически анализировать & проверяет маркер, который получил от клиента или сделать Мне нужны какие-то дополнительные шаги?
2. Что происходит, когда не удается проверить токен или если токен плох или подделан?
Вот мой полный код
AzureAuthenticationService.js
"use strict";
var passport = require('passport');
var OIDCBearerStrategy = require('passport-azure-ad').BearerStrategy;
var options = {
identityMetadata: 'https://login.microsoftonline.com/tenantid/.well-known/openid-configuration',
validateIssuer: true,
passReqToCallback: false,
loggingLevel: 'error'
};
function configure(app) {
app.use(passport.initialize());
app.use(passport.session());
passport.use(new OIDCBearerStrategy(options,
function(token, done) {
//is there anything else i need to do here?
return done(null, token.unique_name, token);
}));
passport.serializeUser(function (user, done) {
done(null, user);
});
passport.deserializeUser(function (id, done) {
done(null, id);
});
}
function authenticate(req, res, next) {
//is there anything else i need to do here?
passport.authenticate('oauth-bearer')(req, res, next);
}
server.js
'UserService' ниже я использовал, чтобы получить пользователей из базы данных, и я хочу, чтобы защитить этот API звонок
"use strict";
var authentication = require('./AzureAuthenticationService');
var userService = require('./UserService');
// Initialize server
var express = require('express');
var app = exports.app = express();
authentication.configure(app);
// Set routes
app.get('/api/users',authentication.authenticate,userService.getUsers);