以下是一个使用AngularJS和OAuth进行安全认证的示例代码:
app.factory('Auth', ['$http', function($http) {
var auth = {};
// 登录方法
auth.login = function(username, password) {
return $http.post('/api/login', { username: username, password: password })
.then(function(response) {
// 在响应中存储access token
auth.token = response.data.token;
return response.data;
});
};
// 检查用户是否已经登录
auth.isAuthenticated = function() {
return !!auth.token;
};
// 注销方法
auth.logout = function() {
auth.token = null;
};
// 向服务器发送受保护的请求
auth.getProtectedData = function() {
return $http.get('/api/protected', { headers: { Authorization: 'Bearer ' + auth.token } })
.then(function(response) {
return response.data;
});
};
return auth;
}]);
app.controller('LoginCtrl', ['$scope', 'Auth', function($scope, Auth) {
$scope.login = function() {
Auth.login($scope.username, $scope.password)
.then(function(data) {
// 登录成功
$scope.message = 'Login successful';
})
.catch(function(error) {
// 登录失败
$scope.message = 'Login failed';
});
};
}]);
app.controller('ProtectedCtrl', ['$scope', 'Auth', function($scope, Auth) {
$scope.getData = function() {
Auth.getProtectedData()
.then(function(data) {
// 获取受保护的数据
$scope.data = data;
})
.catch(function(error) {
// 获取数据失败
$scope.data = 'Error retrieving data';
});
};
}]);
以上是一个简单的示例,演示了如何使用AngularJS和OAuth进行安全认证。请注意,这只是一个基本示例,实际应用中可能需要进行更多的安全性和错误处理。