last day (15 days later) » 

6:11 PM
1
A: Autenticação Vraptor + AngularJs

Emir MarquesEDIT 1 Faça o seguinte: @Inject private Result result; @Inject private UsuarioDAO usuarioDAO; @Path(value = "/auth") @Consumes(value = "application/json", options = WithoutRoot.class) private void autenticar(Usuario usuario){ Usuario usuario = usuarioDAO.autenticar(usuario.getCodigo(), us...

 
Entendi, na parte do front end como guardo esse usuário logado para que eu possa trabalhar com ele?
 
Não sei qual o teu contexto, mais não necessariamente vc precisa aguardar o usuário no front-end. Pode fazer isso salvando o mesmo no lado back-end. Se quiser guardar o backend pode salvar em uma variável global para ser acessada a qualquer, ou melhor ainda, crie um objeto js para encapsular o usuário retornado, nesse caso sempre que necessário poderá usar um método desse objeto para retornar o usuário
Como está trabalhando com angular, pode criar no teu scope essa variável. Seria melhor se vc incluísse o código da tua chamada também
 
Eu to terminando a chamada, já incluo o código
Testei isso: result.use(json()).from(usuario).serialize(); porém não chega nenhuma resposta no front
 
Coloque o código que está executando no front-end
 
Consegui recuperar o objeto, aonde eu crio essa variável global? Mais uma dúvida, se duas pessoas logarem no sistema essa variável não será sobrescrita?
 
6:11 PM
Não será sobrescrito pq js roda no lado cliente (navegador de cada usuário). Veja o edit 2
 
Entendi, seria quase a mesma coisa deu armazenar o usuário no LocalStorage?
 
Isso mesmo, cada usuário terá sua própria execução
 
Entendi, uma ultima dúvida, já está quase tudo certo. Eu fiz usando SessionStorage mas seguindo os conceitos que voce passou, consigo recuperar o objeto dessa forma: var user = sessionStorage.getItem("userLogado");. Porém quando tendo dar um console.log(user.login) da undefined
 
Vc está usando o $rootScope? ou o service?
 
Vou editar minha pergunta com o codigo do front
Editei a pergunta
 
6:11 PM
troque sessionStorage.setItem('userLogado', data) por $rootScope.userLogado = data. E ai sempre que precisar pegar o usuário logado pega pelo $rootScope. Por exemplo: nomeUsuarioLogado = $rootScope.userLogado.nome;
 
beleza, vou tentar
Ainda está dando undefined, será que o objeto está chegando errado?
 
Tenta usar o exemplo 3
 
<passa aqui o usuario> Nessa parte tenho que passar o usuário né?
 
Isso mesmo passa o usuário como vc estava passando antes
 
Entendi, aparentemente está funcionando, qual váriavel que eu uso pra manipular o usuário agora? E se eu quiser pegar o login dele, é só dar um objeto.login?
 
6:11 PM
Isso depende do retorno do teu backend. Sele retornar por exemplo um objeto, {nome:'Joao Silva', login:'joao.silva', xuxu:'Esse é o xuxu'}, vc vai pegar o usuário retornado através do método $scope.getUsuarioCorrente(). Para obter o nome: $scope.getUsuarioCorrente().nome, para obter o login: $scope.getUsuarioCorrente().login, para obter o xuxu: $scope.getUsuarioCorrente().xuxu, e assim por diante, tudo depende do retorno do lado server como falei
 
Entendi, e eu posso chamar esse $scope.getUsuarioCorrente() em qualquer controller?
 
Nesse caso não, para usar em qualquer controller vc va precisar definir esse método no $rootScope.
 
Assim: angular.module("oraculo").controller("colaboradorController", function($scope, $routeParams, $location, colaboradorAPI, Upload, $timeout, $rootScope) ?
 
Falta incluir $rootScope.getUsuarioCorrente = function(){ /* Aqui define */}
 

last day (15 days later) »