2016-04-07 1 views
0

Как я могу отправить токен, чтобы получить доступ к представлению. Могу ли я отправить его через POST или он должен быть через заголовок?Django JWT отправляет токен через Angularjs

Как я могу отправить токен через заголовок, если это необходимо?

+0

Надеюсь, вы это запустили, но если кто-то наткнулся на это, я нашел этот https://github.com/auth0/angular-jwt отлично. Вы можете закодировать все это, это не ракетостроение, но сэкономит вам время, и я пока не сталкивался с какими-либо проблемами. –

ответ

0

Вы должны отправить его через заголовок Authorization со значением: Token your-token-value.

В AngularJS вы можете сделать это через $httpProvider в конфигурации модуля, например:

angular.module('mymodule', []).config(function($httpProvider) { 
    $httpProvider.defaults.headers.common['Authorization'] = 'Token your-token-value'; 
}); 

После вы сделаете это, каждый запрос сделан с $http будет иметь этот заголовок.

1

Вы должны отправить токен в заголовок Authorization. Токен должен быть JWT <token>, как описано в django jwt.

Вот функция, основанная на Angularjs, которую я написал, чтобы показать, как зарегистрироваться, код очень простой, просто для понимания, что вы можете написать отдельный сервис или фабрику, но для объяснения это кажется хорошим.

$scope.registerUser = function(){ 
     var postDict = $scope.user; 
     $http.post('http://127.0.0.1:8000/api/v1'+'/accounts/', postDict).success(function(data){ 
      $scope.userRegistered = data; 
     var authData = { 
      username: data.username, 
      password: data.password 
     }; 
     $http.post('http://127.0.0.1:8000/api-token-auth/', authData).success(function(data){ 
      var token = data.token; 
      $http({ 
      method : 'POST', 
      url  : 'http://127.0.0.1:8000/api/v1/auth/login/', 
      data : authData, // pass in data as strings 
      headers : { "Content-Type": "application/json", "Authorization": "JWT "+data.token } // set the headers so angular passing info as form data (not request payload) 
      }) 
      .success(function(data){ 
      console.log(data); 
       var userdata = { "username": data.username, "first_name": data.first_name , "token": token , "last_name": data.last_name , "email": data.email}; 
       $window.localStorage.setItem('userdata', JSON.stringify(userdata)); 
       $state.go('app.dashboard'); 
      }); 
     }); 
     }); 
    } 

теперь мы получили маркер и в заголовках свойство $http.post метода в angularjs, мы использовали этот маркер для входа в систему. Вот как вы можете использовать Django JWT в Angularjs, также взгляните на django jwt documentation

Смежные вопросы