Backand: 'userId' имеет значение null после вызова SignUp API

Я пытаюсь зарегистрировать нового пользователя (зарегистрироваться) с помощью этого сервисного модуля:

(function () {
    angular.module('starter')
    .service('ProfileModel', function ($http, Backand) {
        var service = this,
            baseUrl = '/1/objects/',
            objectName = 'users/';

        function getUrl() {
            return Backand.getApiUrl() + baseUrl + objectName;
        }

        function getUrlForId(id) {
            return getUrl() + id;
        }

        service.all = function () {
            return $http.get(getUrl());
        };

        service.fetch = function (id) {
            return $http.get(getUrlForId(id));
        };

        service.create = function (object) {
            return $http.post(getUrl(), object);
        };

        service.update = function (id, object) {
            return $http.put(getUrlForId(id), object);
        };

        service.delete = function (id) {
            return $http.delete(getUrlForId(id));
        };



        service.currentUser = {};

        loadUserDetails();

        function loadUserDetails() {

            return Backand.getUserDetails()
                .then(function (data) {
                    service.currentUser.details = data;
                    if(data !== null)
                        service.currentUser.name = data.username;
                });

        }

        service.getSocialProviders = function () {
            return Backand.getSocialProviders()
        };

        service.socialSignin = function (provider) {
            Backand.setRunSignupAfterErrorInSigninSocial(false); //by default run sign-up if there is no sign in
            return Backand.socialSignin(provider)
                .then(function (response) {
                    loadUserDetails();
                    return response;
                });
        };

        service.socialSignup = function (provider) {
            return Backand.socialSignUp(provider)
                .then(function (response) {
                  loadUserDetails();
                  return response;
                });
        };

        service.signin = function (username, password) {
            return Backand.signin(username, password)
                .then(function (response) {
                    loadUserDetails();
                    return response;
                });
        };

        service.signup = function (firstName, lastName, username, password, parameters) {
            return Backand.signup(firstName, lastName, username, password, password, parameters)
                .then(function (signUpResponse) {
                    return service.signin(username, password)
                        .then(function () {
                            return signUpResponse;
                        });

                });
        };

        service.changePassword = function (oldPassword, newPassword) {
            return Backand.changePassword(oldPassword, newPassword)
        };

        service.requestResetPassword = function (username) {
            return Backand.requestResetPassword(username)
        };

        service.resetPassword = function (password, token) {
            return Backand.resetPassword(password, token)
        };

        service.logout = function () {
            Backand.signout().then(function () {
                angular.copy({}, service.currentUser);
            });
        };

    });

}());

а также

 ProfileModel.signup($scope.user.title, 'last', $scope.user.email, $scope.user.password, parameters)
    .then(
        function(resp){
           console.log(resp); 
        }
   ); 

и я получаю

Object {access_token: "epn2SW9XHgYj0RBtTv2tGHFmZATrSYqrA79qYnRckBVEaY8is-…m8B7Ko_NTRP-Salr0kh1ppCnOyQKnmzluCpmXOYd7BO7qAdkw", token_type: "bearer", expires_in: 86400, appName: "testthurst", username: "[email protected]"…}
access_token: "epn2SW9XHgYj0RBtTv2tGHFmZATrSYqrA79qYnRckBVEaY8is-wPWU4sBrnhtNJ8UsqvOeE5_1j_CnTd-HzSfimw_3t4Y9iuOn2N74rb2CCPV0hBFXUOQG1-JLnyqW7kWOc43DRteswmwLqVLRcln6KuHThUeW0wwop2XNiP6NwTsqi-2uokD65QJzoLDWUGEeZkpwZYYwGkXLW7I79INkguVkBauzafOm-vmm8B7Ko_NTRP-Salr0kh1ppCnOyQKnmzluCpmXOYd7BO7qAdkw"
appName: "testthurst"
expires_in: 86400
firstName: "TestUser"
fullName:"TestUser last"
lastName:"last"
regId:
374601
role:"User"
token_type:"bearer"
userId:null

Кстати, пользователь появился в таблице «Зарегистрированные пользователи», а не в таблице «Пользователи» в разделе «Объекты».

Я всегда получаю один и тот же результат, когда «userId» имеет значение null. Кто-нибудь знает, почему я получаю эту ошибку?


person Colin Wang    schedule 28.04.2016    source источник


Ответы (1)


Когда анонимный доступ отключен или изменен на доступ только для чтения, вам необходимо сделать вызов в действии «Создать пользователя моего приложения» с доступом администратора.

Решение состоит в том, чтобы использовать разрешение администратора в действии на стороне сервера. Чтобы добавить разрешение администратора, вы можете использовать базовый заголовок авторизации авторизации.

Полный ответ здесь: вопрос 36169490

person Itay    schedule 28.04.2016
comment
Я просто имею в виду, почему я не смог получить действительный идентификатор пользователя. - person Colin Wang; 28.04.2016
comment
Это случается иногда, не всегда. - person Colin Wang; 28.04.2016