首页 文章

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

提问于
浏览
0

我正在研究一个带有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

    考虑到您在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;
    

相关问题