Я использую MEAN стек
Код на стороне сервера:
router.get('/users/google', passport.authenticate('google', {
scope : ['email']
}));
router.get('/users/google/redirect', function (req, res, next) {
console.log(req.isAuthenticated())
console.log(req.session);
passport.authenticate('google', function(err, user, info) {
if (err) { return next(err); }
req.logIn(user, function(err) {
if (err) { return next(err); }
return res.redirect('http://localhost:4200/');
});
})(req, res, next);
});
router.get('/logout', loggedIn,function(req, res){
console.log(req.isAuthenticated());
req.logout();
return res.redirect('http://localhost:4200/register');
});
function loggedIn(req, res, next) {
if (req.user) {
console.log('LOGED');
next();
} else {
res.redirect('/login');
}
}
Вот так я могу войти с помощью angular
OnNavigate() {
console.log('aaaa')
window.open("http://localhost:3000/users/google", "_blank");
}
Теперь, если я позвоню / выйду из системыкак это: Различные файлы:
logOut() {
this.userService.logOut().subscribe();
}
logOut(): Observable<any> {
console.log('From uSEr');
return this.apiService.get('/logout')
.pipe(map(
data => {
console.log(data);
return data;
}
));
}
get(path: string, params: HttpParams = new HttpParams()) : Observable<any>
{
console.log(`${environment.api_url}${path}`);
return this.http.get(
`${environment.api_url}${path}`, { params }
);
}
На стороне сервера говорит, что я не вошел в систему. Но если я звоню / выходу из системы, как это:
<a href="http://localhost:3000/logout"class="nav-item nav-link">
Это работает, он говорит, что я вошел в системув. Почему это?
Также, если я вхожу с запросом get, я получаю ошибку политики cors.
Конфигурация сервера:
var app = express();
app.use(cors());
// Normal express config defaults
app.use(require('morgan')('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(require('method-override')());
app.use(express.static(__dirname + '/public')) ;
//app.use(cookieParser(sessionOpts.secret))
app.use(session(sessionOpts))
app.use(passport.initialize())
app.use(passport.session())
PS: У меня естьфункции serializeUser, deserializeUser ...