如何发送令牌也可以访问视图。我可以通过POST发送它还是必须通过标题?
如果有必要,我如何通过标题发送令牌?
答案 0 :(得分: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');
});
});
});
}
现在我们已经获得了tokenjs的$http.post
方法的标记和标题属性,我们已经使用此标记进行登录。
这是你如何在Angularjs中使用Django JWT,也看看django jwt documentation
答案 1 :(得分:0)
您必须通过名为Authorization
的标头发送,其值为Token your-token-value
。
在AngularJS中,您可以通过模块配置中的$httpProvider
执行此操作,例如:
angular.module('mymodule', []).config(function($httpProvider) {
$httpProvider.defaults.headers.common['Authorization'] = 'Token your-token-value';
});
执行此操作后,使用$http
发出的每个请求都会显示此标题。