Я хочу получить пользователя после входа в мое приложение, чтобы создать свою учетную запись. Например, я хочу, чтобы его Id перенаправил его на страницу: '/ user-cars /: userId'. Я использую Angular JS и SpringBoot. Я не знаю, как это сделать. Ниже мой код:
Конфиг. js
angular.module('app')
.config(function ($routeProvider, $httpProvider) {
$routeProvider
.when('/users', {
templateUrl: 'app/components/users/list/userList.html',
controller: 'UserListController',
controllerAs: 'ctrl'
})
.when('/user-add', {
templateUrl: 'app/components/users/edit/userEdit.html',
controller: 'UserEditController',
controllerAs: 'ctrl'
})
.when('/user-cars/:userId', {
templateUrl: 'app/components/users/userCars/carList.html',
controller: 'CarListController',
controllerAs: 'ctrl'
})
.when('/user-login',{
templateUrl: 'app/components/users/login/login.html',
controller: 'AuthenticationController',
controllerAs: 'ctrl'
})
.otherwise({
redirectTo: '/',
controller: 'HomeController',
controllerAs: 'ctrl'
});
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
});
authService. js
angular.module('app')
.constant('LOGIN_ENDPOINT', '/user-login')
.constant('LOGOUT_ENDPOINT', '/user-logout')
.service('AuthenticationService', function($http, LOGIN_ENDPOINT, LOGOUT_ENDPOINT) {
this.authenticate = function(credentials, successCallback) {
var authHeader = {Authorization: 'Basic ' + btoa(credentials.email+':'+credentials.password)};
var config = {headers: authHeader};
$http
.post(LOGIN_ENDPOINT, {
}, config)
.then(function success(res) {
$http.defaults.headers.post.Authorization = authHeader.Authorization;
successCallback();
}, function error(reason) {
console.log('Login error');
console.log(reason);
});
}
this.logout = function(successCallback) {
delete $http.defaults.headers.post.Authorization;
successCallback();
}
});
authController. js
angular.module('app')
.controller('AuthenticationController', function($rootScope, $location, AuthenticationService) {
var vm = this;
vm.credentials = {};
var loginSuccess = function() {
$rootScope.authenticated = true;
$location.path('/');
}
vm.login = function() {
AuthenticationService.authenticate(vm.credentials, loginSuccess);
}
var logoutSuccess = function() {
$rootScope.authenticated = false;
$location.path('/');
}
vm.logout = function() {
AuthenticationService.logout(logoutSuccess);
}
})
Все работает, я получил принципал из Back-end, но сейчас я не знаю, как его использовать и получить пользователя
RestController. java `
@RestController
public class AuthenticationController {
@RequestMapping("/user-login")
@ResponseBody
public Principal login(Principal user)
{
return user;
}`
Авторизация работает, у меня есть принципал, но я не знаю, что мне с ним делать.