我正在使用 symfont 和 JSON Web Token 以及 Symfony。
我正在尝试使用 ajax 获取 jwt,但我收到 401(未经授权) 问题出在 ajax 上,因为我尝试使用 postman ,我可以获得 token 。
这是我的 security.yaml
security:
encoders:
App\Entity\Users:
algorithm: bcrypt
providers:
users:
entity:
class: App\Entity\Users
property: email
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login_app_manager:
pattern: ^/user/login
stateless: true
anonymous: true
provider: users
json_login:
check_path: /user/login
username_path: email
password_path: password
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
require_previous_session: false
app_api_manager:
pattern: ^/mngr/api
stateless: true
anonymous: false
provider: users
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api, roles: IS_AUTHENTICATED_FULLY }
这是我的ajax
var data = {
'email':email,
'password':password
};
$.ajax({
type: "POST",
url: "/user/login",
contentType: "application/json",
data: JSON.stringify(data),
success: function(response) {
console.log(response);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.log('Error : ' + errorThrown);
}
});
请帮帮我,谢谢
最佳答案
尝试用 post 代替 ajax:
$(document).ready(function{
//form submit
$("form").submit(function(event){
var email = $('#email').val();
var password = $('#password').val();
$.post("/user/login",{
email:email, password: password
}).done(function(data){
})
})
});
关于javascript - jwt_authentication 请求 ajax - symfony,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55636800/