Caracter # invalida senha sanctum or Vuejs
Olá professor, boa tarde!
Tudo bem?. Poderia me auxiliar, por favor?.
Eu tenho uma aplicação que constroi com laravel 9 + sanctum com backend e como front uso vuejs + ts, estou usando vuex, vuerouter.
O problema:
Qualquer outra senha que não contenha caracter # no campo password, funciona, caso contenha, ele retorna credências invalidas.
Para o sanctum estou usando a doc do laravel como padrão, outras senhas que não contenha esse caracter, funciona normalmente.
Grato.
Olá, Jean!
Tudo bem?
Ajudo sim, claro.
O caracter "#" está sendo interpretado pelo seu código, e logo sendo reconhecido como comentário de código.
No seu frontend, no payload da request, como está enviando a senha?
Olha no DevToos do Browser -> Network (XHR)
Olá professora, boa tarde!
No meu payload está assim.
Corrigindo:
Olá, Jean!
Tudo bem?
Desculpas demorar te responder;
Sua senha realmente termina no caracter "#"?
Ou é algo tipo "Teste21#MaisAlgumaCoisa"?
Porque se o frontend está enviando corretamente, o problema está no back, com isso já temos um filtro de onde atacar.
Tem o backend no GitHub?
Opa Professor, boa tarde!
Obrigado pelo apoio, segue abaixo, inclui para você.
https://github.com/jeanasilva/gt_back
https://github.com/jeanasilva/gt_front
Agradeço toda sua ajuda.
Opa amigo, vou agendar aqui para verificar o seu projeto.
Só confirma para mim por favor:
Sua senha realmente termina no caracter "#"?
Ou é algo tipo "Teste21#MaisAlgumaCoisa"?
Olá Professor, boa tarde!
Obrigado pela ajuda.
Efetuei os testes nos no meio e no final, ambas acontecem o mesmo erro.
Teste#21
Teste21#
Certo, a ideia era saber se o seu frontend estava enviando corretamente os dados para o backend, pelo o que confirmou, sim, está enviando corretamente os dados no payload, certo?
Vou verificar o seu backend e te retorno;Certo, a ideia era saber se o seu frontend estava enviando corretamente os dados para o backend, pelo o que confirmou, sim, está enviando corretamente os dados no payload, certo?
Vou verificar o seu backend e te retorno;
Faz um debug por favor, no seu método login do controller AuthController, qual o valor que chega para a senha, quando informa:
"aaa#aaa"
dd($request->password);
Porque se chegou aqui o valor correto, o problema está na chamada da API que você está fazendo, ou seja, nos dados que enviou como query param;
Como a request é tipo post, melhor enviar os dados no body da request, e não como query params:
$response = Http::post('url aqui', [
'userId ' => $request->userId,
'password ' => $request->password,
]);
(https://laravel.com/docs/9.x/http-client#request-data)
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!