3
respostas

Login utilizando ajax

Boa noite.

gostaria de fazer o login utilizando ajax, fiz algumas tentativas mas nao obtive sucesso.

meu form:

<div class="login">

            <div class="login-titulo">
                <h1>Identifique-se</h1>
            </div>
            <div class="both-login">
                <div class="login-cadastrado">
                    <form action="/rprvidros/login" method="POST"> 
                        <h2>Email</h2>
                        <div class="email">
                            <span class="icon-user"></span> 
                             <label>
                                 <input class="nome-email username" pattern="[^ @]*@[^ @]*" type="email" name="username" placeholder="email@email.com" autofocus required="Insira seu Email">
                            </label>
                        </div>
                        <h2>Senha</h2>
                        <div class="email">
                            <span class="icon-key3"></span> <label> <input
                                class="nome-email username" type="password" name="password"
                                placeholder="*******" autofocus required="Insira sua senha">
                            </label>
                        </div>
                        <div class="login-botao">
                            <button class="botao-login" type="submit">Entrar</button>
                            <input type="hidden" name="${_csrf.parameterName }"
                                value="${_csrf.token }" />
                        </div>
                    </form>
                </div>

                <div class="login-cadastrece">
                    <p>Primeira compra?</p>
                    <button class="botao-login-cadastrece" type="submit">
                        <span class="icon-user277"></span>Cadastre-se agora
                    </button>
                </div>
            </div>
        </div>

meu codigo ajax:

$(".botao-login").click(function() {

    var username = $(".username").val();
    var password = $(".password").val();

    $.ajax({
        type: "get",
        url: "/rprvidros/MinhaConta",
        data : {
        "username" : username,
        "password" : password,
    },
        success: function() {
            $(location).attr('href', "/rprvidros/MinhaConta");
        }
    })
})

esse codigo chega no controller login e é redirecionado para a pagina do controller mas não e feito login algum.

Como poderia estar fazendo isso?

obrigado.

3 respostas

Bom dia Gabriel, pode postar seu código do controller por favor?

Bom dia Guilherme,

controller:

    @RequestMapping(value ="/login", method = RequestMethod.GET)
    public ModelAndView login(HttpServletRequest req){
        req.getSession().setAttribute("pedido", pedido);
        ModelAndView modelAndView = new ModelAndView("/login");
        Collection<PedidoItem> itens = pedido.getItens();
        modelAndView.addObject("pedidoItem", itens);
        return modelAndView;
    }
}

esse controller basicamente ele existe no caso do login, para redirecionar para a pagina do form.

e configuro na SecurityConfiguration que quero usar esse form customizado para logar.

.and().formLogin().loginPage("/login").successHandler(customAuthenticationSuccessHandler);

obrigado.

Boa tarde guilherme.

Conseguiu descobri algo?

obrigado.