
Andrey
05.07.2018
17:49:11
сделай
export interface MyScope extends ng.IScope {
[key: string]: any;
}

Ricky
05.07.2018
17:52:02
export interface TvoyScope extends ng.IScope

Andrey
05.07.2018
17:52:11
это уже не проблема ангуляра

Google

Stas
05.07.2018
17:54:27
Ничего не понял что вы насоветовали. Какая разница откуда я делаю запрос в гугл, если он пропускает его. Проблема в том, что когда добавляется на фронте ангулярджс, гугл выдаёт ошибку заголовков. Без ангуляра никаких ошибок нет. Соответственно я делаю вывод, что до тогда как отправить запрос, мне с помощью ангуляра нужно добавить какие-то заголовки. Но я не знаю в чём проблема и гугл к сожалению тоже.

Ricky
05.07.2018
17:55:48
ты вообще на голой(ванильной) ноде пишешь что ли?

Stas
05.07.2018
17:56:26
с експрессом

Nurlan
05.07.2018
17:56:36
Добрый вечер

Stas
05.07.2018
17:56:42
я и на ноде добавлял

Nurlan
05.07.2018
17:56:50
Ангуляр не отправляет post запрос

Stas
05.07.2018
17:56:59
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});

Nurlan
05.07.2018
17:57:03
в чем может быть проблема?

Stas
05.07.2018
17:57:35

Andrey
05.07.2018
17:57:36

Nurlan
05.07.2018
17:58:00
чтобы код не перепутали

Google

Nurlan
05.07.2018
17:58:13
в общем вот содержимое контроллера
которые принимает данные с формы
function SingUpCtrl($http, $state) {
var vm = this;
vm.signup = function(){
$http.post('/api/user/signup', {
email: vm.email,
first_name: vm.first_name,
last_name: vm.last_name,
password: vm.password,
password2: vm.password2}
)}.success(function(data){
vm.showSignup = false;
vm.showLogin =false;
}).error(function(err){
vm.errors = err;
});
}

Stas
05.07.2018
17:58:25

Andrey
05.07.2018
17:58:39
используй три бек тика что бы выделить код

Nurlan
05.07.2018
17:59:04
то есть до ноды запрос не доходит

Andrey
05.07.2018
17:59:09
then вместо success

Nurlan
05.07.2018
17:59:10
до боди парсера

Andrey
05.07.2018
17:59:15
что в консоли

Nurlan
05.07.2018
18:00:29
ругается на ng-min.js
bad request 400

Andrey
05.07.2018
18:02:18
400 это код сервера, значит что ты не так что-то делаешь
тебе нода так отвечает


Nurlan
05.07.2018
18:02:54
получается доходит
сейчас api poые запроса с ноды скину
app.post ('/api/user/signup', function(req, res, next){
var errors = {};
if(isEmpty(req.body.email)){
errors.email = "Email field required";
}
else if(!validator.isEmail(req.body.email)) {
errors.email = "Email not righted неправильно введен";
}
if(isEmpty(req.body.first_name)){
errors.firstName = "Name field required";
}
if(isEmpty(req.body.last_name)){
errors.lastName = "Last Name required";
}
if(isEmpty(req.body.password)){
errors.password = "Password field required";
}
else if(!validator.isLength(req.body.password, {min:6, max: 30})) {
errors.password = "Password must be from 6 to 30 symbols";
}
if(isEmpty(req.body.password2)){
errors.password2 = "Password field required";
}
else if(req.body.password !== req.body.password2) {
errors.password2 = "Password не равны";
}
if (isEmpty(errors)){
new User({email:req.body.email,
first_name:req.body.first_name,
last_name : req.body.last_name,
password : req.body.password,
password2 : req.body.password2
}).save(function(err, user){
console.log(req.body);
if(err) return res.status(400).send({msg: 'Error please send support'});
res.status(200).send(user);
})
}
else {
res.status(400).send(errors);
}
})


Andrey
05.07.2018
18:04:33
я же говорил что бы код выделял тремя бектиками, сверху и снизу
res.status(400).send(errors); вот что тебе отвечает, у тебя валидацию не проходит

Nurlan
05.07.2018
18:04:55
извинясь что такое бэктик

Andrey
05.07.2018
18:05:04
```

Google

Andrey
05.07.2018
18:05:06
```

Nurlan
05.07.2018
18:05:06
я нуб просто еще

Andrey
05.07.2018
18:05:16
code

Nurlan
05.07.2018
18:05:19
извините исправлюсь

Andrey
05.07.2018
18:05:33
одинарные бектики если 1 строка
если много строк тремя бектиками выделять
загуглите телеграм разметку markdown

Remite
05.07.2018
18:17:36

Stas
05.07.2018
18:18:29

Ricky
05.07.2018
18:47:50

Stas
05.07.2018
19:36:43

Ricky
05.07.2018
19:37:17

Stas
05.07.2018
19:37:44
а браузер?
Хром,мазила,опера. Проверял в хроме и мазиле

Ricky
05.07.2018
19:39:33
1. если хром то отключи секурити в cmd chrome.exe --disable-web-security

Stas
05.07.2018
19:40:39

Ricky
05.07.2018
19:41:42
2. установи плагин https://chrome.google.com/webstore/detail/cors-toggle/jioikioepegflmdnbocfhgmpmopmjkim?utm_source=chrome-app-launcher-info-dialog

Andrey
05.07.2018
20:01:05
CORS проблемы сервака ибо не настроено, все что говорите что это пробелма фронта - сивой кобыли бред

Mixer
05.07.2018
20:35:26
Показали бы заголовки. Там в браузере вообще ругаться начинает на CORS если что не так - в консоли. Мол была прервана передача содержимого с левого сервера и все в таком духе.

Remite
05.07.2018
21:11:38
То что браузер не устраивают заголовки которые раздает сервак - проблема браузера

Mixer
05.07.2018
21:20:14
CORS это стандарт безопасности. Без правильных заголовков от сервера - атата будет делать браузер. Любой.

Google

Stas
05.07.2018
21:45:15

Remite
05.07.2018
21:48:48


Stas
05.07.2018
21:51:42
Если б я знал что именно нужно показывать... Есть вариант подключения через тим вивер или просто кидать весь путь прохождения запроса?
это сервис на ангуляре, который делает запрос в апи
let loginGoogle = () => {
return $http.get(`/api/auth/google`, {
cache: false,
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS, PUT, PATCH, DELETE',
'Access-Control-Allow-Headers': 'X-Requested-With,content-type',
'Access-Control-Allow-Credentials': true
}});
};
вот в апи запуск паспорта
router.get('/auth/google', passport.authenticate('google', { scope : ['profile', 'email', 'openid'] }));

Artem
05.07.2018
22:09:36
Помогите пожалуйста - https://codepen.io/verbart/pen/jKRmYz?editors=1010

Stas
05.07.2018
22:09:44
вот гугл стратегия в паспорте
passport.use(new GoogleStrategy({
callbackURL: '/api/auth/google/redirect',
clientID: keys.google.clientID,
clientSecret: keys.google.clientSecret
},
(accessToken, refreshToken, profile, done) => {
console.log(profile);
}
));
вот этот кусок в сервисе работает, но в новом окне, что не вариант
let loginGoogle = function() {
window.open('/api/auth/google','','width=400,height=400');
};
могу скрины заголовков покидать, если объясните что именно нужно

Remite
05.07.2018
22:50:20
это сервис на ангуляре, который делает запрос в апи
let loginGoogle = () => {
return $http.get(`/api/auth/google`, {
cache: false,
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS, PUT, PATCH, DELETE',
'Access-Control-Allow-Headers': 'X-Requested-With,content-type',
'Access-Control-Allow-Credentials': true
}});
};
Вам не надо задавать эти заголовки с фронта, эти заголовки должны быть заданы с бек енда

Stas
05.07.2018
22:55:50

Remite
05.07.2018
22:56:06
Ну эти заголовки с фронта на бек ничего не делают
Можно уточнить
Вы делаете запрос с нг
на Вашу ноду
с ноды званите на гугл
и при необходимости отображаете окно авторизации для гугла
ага?
ато я пропустил большую часть диалога

Stas
05.07.2018
22:56:58

Remite
05.07.2018
22:58:08
И после ответа с ВАШЕЙ ноды
вы пытаетесь отобразить в модальном окне форму из гугла, но получаете ошибку корс

Google

Remite
05.07.2018
22:58:09
ага?

Stas
05.07.2018
22:58:20
нет

Remite
05.07.2018
22:58:48

Stas
05.07.2018
22:59:13
как раз в новом окне выдаёт форму входа, а мне нужно что б сделало редирект на форму, а потом если человек авторизировался, перенаправить
получается что когда я перехожу в новое окно я вижу форму, а когда просто делаю запрос выдаёт ошибку заголовков

Remite
05.07.2018
23:00:50
Вы делаете запрос на енд поинт гугла для эмитации авторизации?

Stas
05.07.2018
23:01:06
да
ну у меня есть локальная регистрация и теперь добавляю вход через соц сети

Remite
05.07.2018
23:01:37
с фронта ? Делайте етот запрос из ноды :))

Stas
05.07.2018
23:02:01
не, запрос в гугл идёт из нода
с фронта я просто передаю инфу что нужно сделать запрос, не более

Remite
05.07.2018
23:02:31
Так, я понял шо ниче не понял.

Stas
05.07.2018
23:02:43
я вот убрал заголовки в ангуляре, получил ошибку)
Failed to load https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fapi%2Fauth%2Fgoogle%2Fredirect&scope=profile%20email%20openid&client_id=1060656164349-rpch2ibsm97k8kkc390bbv5m419g0g4h.apps.googleusercontent.com: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
вот сам запрос в гугл отправляет паспорт
а он находится на беке
где можно глянуть заголовки?
я посмотрю в чём разница