2016-02-27 66 views
0

我正在使用django和angularjs来处理需要使用djangorestframework-jwt进行验证的项目。我是djangorestframework-jwt的新手。我使用'/ api-token-auth /'进行登录,但我没有收到任何用户信息。如何在angularjs中使用django-rest-framework-jwt成功验证后获取用户信息

我的身份验证服务是:

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'); 
     }); 
    } 
+0

你说你解决了这个问题。解决方案是什么?假设接受的解决方案不是你如何做到的。 – shanemgrey

回答

0

考虑到你有Django的休息框架暴露用户的网址,你可以做一个$ http.get。

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

以获取用户标识,所有你需要的用户angular-jwt

userid = jwtHelper.decodeToken(token).user_id; 
+0

感谢您的回答。我阅读angular-jwt文档,但无法理解我如何使用它。你可以给我一个例子或详细解释。 – mohammadjh

+1

我得到了我的答案。再次感谢。 – mohammadjh

+0

这是说,没有办法从django-rest-framework-jwt获取用户吗?需要另一个应用程序才能获取用户ID? – shanemgrey

相关问题