如何在angularjs中使用django-rest-framework-jwt成功验证后获取用户信息

时间:2016-02-27 05:47:56

标签: angularjs django authentication django-rest-framework

我正在使用django和angularjs开展项目,我需要使用djangorestframework-jwt进行身份验证。我是djangorestframework-jwt的新手。我使用'/ api-token-auth /'进行登录,但我没有得到任何用户信息。

我的身份验证服务是:

function login (username, password, callback) {
        return $http.post('/api-token-auth/', {
            username: username, password: password
        }).then(loginSuccessFn(callback), loginErrorFn);

        function loginSuccessFn (callback) {
            return function (data, status, headers, config, response) {
                localStorage.setItem('empee.token',data.data.token);
                $http.defaults.headers.common['Authorization'] = 'Bearer ' + data.data.token;
                if (typeof callback !== 'undefined') {
                    callback();
                }
            }

        }

        function loginErrorFn (data, status, headers, config) {
            console.error('Epic failure!');
        }
    }

登录控制器:

function login() {
        Authentication.login(vm.username, vm.password, function() {
            $state.go('dashboard');
        });
    }

1 个答案:

答案 0 :(得分:0)

考虑到您在Django-rest-framework中公开了用户URL,您可以执行$ http.get。

$http.get('/user-url/'+userid).then(function(response){
    if(response.status === 200){
        user_obj = response.data;
    }
});

要获取userId,您只需要用户angular-jwt

userid = jwtHelper.decodeToken(token).user_id;