
Константин
04.07.2018
12:53:03
Гугл индекс будет нормально работать? или нужно что-то предпринять?

Bohdan
04.07.2018
12:55:53
Серверный рендеринг предпринять

Andrey
04.07.2018
13:14:42
Я недавно под себя настроил prerender от сервиса prerender.io,
Сам prerender.io фигня

Bohdan
04.07.2018
13:18:37
Ооо, headless chrome юзает
Крутяк

Google

Andrey
04.07.2018
13:23:15
https://github.com/prerender/prerender
Но все равно не то )
Хочется SSR

Bohdan
04.07.2018
13:30:21
Та пофиг)

Artem
04.07.2018
16:08:52
Как отловить асинхронный параметр в компоненте? - https://codepen.io/verbart/pen/jKRmYz?editors=1010

max
04.07.2018
17:24:07

Remite
04.07.2018
17:34:55

Artem
04.07.2018
18:38:29

Dart
05.07.2018
10:29:19
Всем Привет. Вопрос новичка:
- AngularJs 1.6 - Legacy приложение
- Есть форма, пользователь выбирает необходимые параметры
- Нажимает кнопку Поиск - данные забираются с сервера и отображаются в таблице
- Далее пользователь может выбрать строку, в таблице и переходит на детали.
- В деталях присутствует кнопка Назад. По нажатию должны вернуться к таблице.
Подскажите: как сохранить состояние в url, чтобы при переходе обратно снова востановить выбранные параметры поиска и запросить данные ?

Andrey
05.07.2018
10:31:28
Может через history api?

Dart
05.07.2018
10:34:53

Remite
05.07.2018
10:35:32
а может не нужно хранить состояние в урл, а просто хранить данные которые были получены в тот раз с учетом настроек формы в сервисе?

Sergey
05.07.2018
10:37:01
ангуляр js 1.х отжил свое?

Bohdan
05.07.2018
10:40:35
Поддержка кажется всьо

Google

Vitaliy
05.07.2018
10:49:47
https://monsterlessons.com/project/lessons/angular-route-v-angularjs может поможет
+- одно,два урока, раньше и позже, помогут в пониманиях

Dart
05.07.2018
10:56:08
+- одно,два урока, раньше и позже, помогут в пониманиях
Спасибо. Посмотрел. про $routeParams читал, знаю.
У меня была идея реализовать так:
1. После нажатия кнопки Поиск - сформировать url
2. Пользователь перейдет на Детали
3. Нажав кнопку назад вернется на страницу с уже готовым url
4. Контроллер должен, при инициализации, прочитать параметры из url
Как то так?

Sergey
05.07.2018
11:10:35
какие преимущества у angular 6 перед тем же vue?

Vitaliy
05.07.2018
11:14:43

Stas
05.07.2018
13:08:29
Ребятки, столкнулся с проблемой, в ноде через паспорт при авторизации через гугл выдаёт ошибку связанную с заголовком. Без ангуляра всё норм пропускает. Кто-то мб сталкивался и знает что там в ангуляре нужно добавить?

Vitaliy
05.07.2018
13:11:59
Слишком мало входных данных, искаженный контекст получаеться

Stas
05.07.2018
13:13:47

Vitaliy
05.07.2018
13:16:13
это мне ответ?
Прошу прощения Stas, да, мало инфы для понимания четко, вопроса

Stas
05.07.2018
13:19:45
Прошу прощения Stas, да, мало инфы для понимания четко, вопроса
Я честно не знаю что добавить, ангуляр тут участвует только в вызове роута. Но не хватает какого-то заголовка. С идентичным кодом на ноде без ангуляра, выдает гугл форму для входа, с ангуляром выдаёт ошибку.
let loginGoogle = () => {
return $http.get(`/api/auth/google`);
};
Вот ошибка
Failed to load https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A3000%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.

Vitaliy
05.07.2018
13:20:55
Ну вот, теперь вопрос начал принимать хоть какие то краски)))
Access-Control-Allow-Origin - это ключ к успешному ответу

Stas
05.07.2018
13:21:38
Вот вызов на ноду, если вдруг кто работал с ним
router.get('/google', passport.authenticate('google', {
scope: ['profile', 'email', 'openid']
}));
вот настройки паспорта
passport.use(new GoogleStrategy({
callbackURL: '/auth/google/redirect',
clientID: keys.google.clientID,
clientSecret: keys.google.clientSecret
}, function (accessToken, refreshToken, profile, done) {
console.log(profile);
console.log(profile.emails);
})
);

Vitaliy
05.07.2018
13:23:08
попробуй так
let loginGoogle = () => {
return $http.get(/api/auth/google, {withCredentials : true});
};
просто если это кроссдоменный запрос, нужно учитывать CORS


Stas
05.07.2018
13:24:06
ошибка поменялась
Failed to load https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fauth%2Fgoogle%2Fredirect&scope=profile%20email%20openid&client_id=1060656164349-rpch2ibsm97k8kkc390bbv5m419g0g4h.apps.googleusercontent.com: Redirect from 'https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fauth%2Fgoogle%2Fredirect&scope=profile%20email%20openid&client_id=1060656164349-rpch2ibsm97k8kkc390bbv5m419g0g4h.apps.googleusercontent.com' to 'http://localhost:3000/auth/google/redirect?code=4/AADGjD3O_3ym_naO9tHHObMh0uFgfOiOy0x4R8CXhfB1279KeBV4eQroX4UnnKbc-gR1pIWhQVHUZxgi_InvM-A&authuser=0&session_state=916319be0ed1b61990c86db6287932b555266ec0..52dd&prompt=none#' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
а не, вроде не поменялась)


Vitaliy
05.07.2018
13:25:52
кеш наверное
let loginGoogle = () => {
return $http.get(/api/auth/google, {withCredentials : true, cache: false});
};

Google

Stas
05.07.2018
13:26:55
Я видел наноде добавляли вот такой список, но мне он не помог. Возможно тоже самое нужно указать в ангуляре как-то?
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();
});

Vitaliy
05.07.2018
13:28:14
ну да можно добавить. Но withCredentials : false - как раз и говорит что бы запрос был пропущен без учета проверок домена

Stas
05.07.2018
13:28:22
я с этой ошибкой уже дня 2 вожусь, есть куча подобных проблем на стековерфлоу, но нет ответа (

Vitaliy
05.07.2018
13:28:40
тю ...
я ошибся
let loginGoogle = () => {
return $http.get(/api/auth/google, {withCredentials : false, cache: false});
};

Stas
05.07.2018
13:30:15
тоже самое вроде

Vitaliy
05.07.2018
13:32:19
ну тогда последнее это - добавить шапку самому, как писалось выше "в ноде .." вот так
headers: {
'Authorization': 'Basic bashe64usename:password'
}
let loginGoogle = () => {
return $http.get('/api/auth/google', {
//withCredentials : false,
cache: false,
headers: {
'Authorization': 'Basic bashe64usename:password',
'...': '...'
}
});
};

Stas
05.07.2018
13:34:39
спс, сейчас попробую

Vitaliy
05.07.2018
13:35:18
велком, но логика только такова, не иначе
это ошибки именно CORS

Stas
05.07.2018
13:39:28
ошибки поменялись
Failed to load https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fauth%2Fgoogle%2Fredirect&scope=profile%20email%20openid&client_id=1060656164349-rpch2ibsm97k8kkc390bbv5m419g0g4h.apps.googleusercontent.com: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 405.

Vitaliy
05.07.2018
13:42:38
ух ты, 405
что то новенькое
а что там с заголовком Access-Control-Allow-Methods?
тут цепочка обьясняеться у автентификации по oAuth2 google
https://stackoverflow.com/questions/24026431/google-oauth2-0-405-error

Google

Vitaliy
05.07.2018
13:46:03
на получения КОДа - ПОСТ запрос а не ГЕТ ))
по этому и 405
Response to preflight request .... это сервис гугла опроверг запрос и в заголовке написал типа по параметру шапки Access-Control-Allow-Origin - 405

Stas
05.07.2018
13:53:32
я короче сделал вот так
let loginGoogle = function() {
window.open('/api/auth/google','','width=400,height=400');
};
вместо перенаправления и начало хотя бы форму входа выдавать

Vitaliy
05.07.2018
13:54:26
тоже выход ))

Stas
05.07.2018
13:54:51
но я не понимаю в чём выход)))
просто увидел такое решение, но в чём прикол не пойму
какая разница в каком окне оно мне выдаст форму)

Vitaliy
05.07.2018
13:57:25
с формы csrf сработает, это второй метод защиты данных для передаваемых данных на сервер
а АПИ - имеет CORS prefleit
и вот с ним вся трабла
еще выход посмотреть какую нибудь библу для google auth как она реализует запрос, что туда пихает
полюбому мелочь какая то
ошибка поменялась - это уже говорит о том что проблема найдена но не решена ))

Stas
05.07.2018
14:04:43
я пробовал делать не гет запрос а пост, ничего не происходит)
с окошком работает, но это бредовое решение как по мне, буду дальше ковыряться
может натолкнёшь на мысль что мне хотя бы искать в гугле?

Vitaliy
05.07.2018
14:09:26
реализацыя аутентификации server side
для ангуляраджиес

Stas
05.07.2018
14:09:44
спасибо

Google

Stas
05.07.2018
16:07:08
ребятки, вопрос всё еще актуален ?

Remite
05.07.2018
17:11:52
Гугл не пускает по корсу из за доменного имени, localhost. Мое мнение.

Stas
05.07.2018
17:18:39
с локалхоста без ангуляра пускает
я вот добавил кнопку которая напрямую вызывает с бэка, оно пропускает, но после перезагрузки ?
типа редирект не делает
но когда впишу определённый путь то проходит
но к сожалению такое работает когда в роутах нет otherwise
иначе перенапрявляет на главную
если кто делал аутентификацию через соц сети (nodejs+angularjs) помогите плз

Andrey
05.07.2018
17:37:20
гугл не пускает потому что ему нужен домен, а не какой-то неизвестный ип

Stas
05.07.2018
17:38:58
и когда я просто ввожу в адресную строку http://localhost:3000/auth/google, тоже работает

Andrey
05.07.2018
17:44:09
тебе домен нужен и добавить твой локальній домен фронта в гугл

AluV
05.07.2018
17:44:15
Привет, продскажите пожалуйста, правильно ли если у меня везде:
$scope: any,
$state: any,
StateStack: any,
Restangular: any,
toastr: any,
UnsavedChanges: any,
_: any,
$q: any

Andrey
05.07.2018
17:44:40
то это хреново если any

AluV
05.07.2018
17:45:13
ну scope в любом случае any, а вот как задавать другим не знаю

Andrey
05.07.2018
17:46:40
почему any ? ng.IScope
есть такая штука как @types
возможно к вашей либе будут описаны типы

Ricky
05.07.2018
17:47:11

AluV
05.07.2018
17:48:35