@EvilDev

Cordova, как авторизоваться на другом сервере?

Доброго времени суток.
Возникла задача написать мобильный клиент, но возникла проблема с авторизацией. Кросс-доменный запрос сделать получилось так:
.service('$request', function($q, $http, $ionicPopup, $localStorage) {
        return {
            post: function(r, postData, urlParams) {
                var defer = $q.defer(),
                    url = $localStorage.getObject('user').hostname + r + '?'
                        + _.values(_.mapObject(urlParams || {}, function(v,k) { return k + '=' + v; })).join('&');

                $http({
                    url: url,
                    method: "POST",
                    data: postData || {},
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
                    }
                }).then(function(result) {
                    if (!result.data.success) {
                        $ionicPopup.alert({
                            title: 'Ошибка',
                            template: result.data.error
                        });
                        defer.resolve(false);
                    }
                    else {
                        defer.resolve(result.data);
                    }
                });
...

Тут все работает и в случае неверного пароля, выводит ошибку. Если авторизоваться получается, переходим на dashboard и тут ошибка, при следующем запросе требует авторизацию. Посмотрел куки, там пусто, хотя должен быть идентификатор php сессии. Как правильно реализовать авторизацию с запоминанием кук?
PS Авторизацию по токенам сделать не получится.
  • Вопрос задан
  • 532 просмотра
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Авторизацию по токенам сделать не получится.

А придется. Ну или в куки пихайте токены, но это делает вас уязвимым к CSRF атакам, и что бы оградить себя от этого всеравно придется делать пересылку CSRF токенов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы