を働いていない: https://symfony.com/doc/current/security/json_login_setup.htmlsymfonyの4 - JSON認証は、私は、このドキュメントに基づかsymfonyにおいてJSON認証メカニズムを構築しようとしています
ここに私のsecurity.yamlここ
security:
encoders:
App\Entity\User:
algorithm: bcrypt
providers:
user_provider:
entity:
class: App\Entity\User
property: username
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: ~
json_login:
check_path: login
provider: user_provider
logout:
path: logout
は私のメソッドのログインです私のセキュリティコントローラに
class SecurityController extends Controller
{
...
/**
* @Route("/login", name="login")
* @return Response
*/
public function login()
{
return new Response('Lala');
}
...
}
そしてここでは、私のログインフォームです
<form class="form" id="login-nav">
<div class="form-group">
<label class="sr-only" for="username">Login</label>
<input id="username" class="form-control" placeholder="Login" required
name="_username">
</div>
<div class="form-group">
<label class="sr-only" for="password">Password</label>
<input type="password" class="form-control" id="password" placeholder="Hasło" required
name="_password">
<div class="help-block text-right">
<a href="">Forgot password?</a>
</div>
</div>
<div class="form-group">
<a id="login-submit" class="btn btn-primary btn-block">Sign in</a>
</div>
<div class="checkbox">
<label>
<input type="checkbox"> Remember me
</label>
</div>
そして、あなたは私のAJAXリクエストを見ることができるの下に私は、サーバーから200のステータスを受け付けておりますが、何も起こりません
$('#login-submit').click(function() {
let username = $('#username').val();
let password = $('#password').val();
let data = JSON.stringify({username: username, password: password});
$.ajax({
url: '/login',
type: 'POST',
dataType: 'json',
data: data,
success: function (data, status) {
console.log("DATA", data);
}
});
});
をコントローラに送信しています。セキュリティ認証メカニズムはまったく反応していません。そして、ajaxの成功メソッドは呼び出されません。どうしてか分かりません。私はインターネット上で多くのことを探していましたが、Symfonyではjson認証に関する情報はほとんどありません。 Symfonyのドキュメントには、簡単な説明しかありません。
あなたは '追加しましたあなたのキー 'json_login'の' security.yaml'に対する 'username_path:security.credentials.login'と' password_path:security.credentials.password'を(ドキュメンテーションのように)アドバイスしますか? – baris1892
ねえ。私のAJAXリクエストからわかるように、私は最も単純な形式のJSONを送ります: '{" username ":" dunglas "、" password ":" MyPassword "}' 'username_path 'password_path' ドキュメントからの引用: JSONドキュメントの構造が異なる場合、' username_path'と 'password_path'キーを使用して、ユーザー名とパスワードのプロパティにアクセスするパスを指定することができます。パスワード)。 –
これについての解決策をお探しですか?おそらくこの問題はコントローラが空でなければならないことを明示しているので、空のコントローラではないのでしょうか?http://symfony.com/doc/current/security/json_login_setup.html 私は現在同じ問題を抱えていますが、わかりませんどのように続行する。 – user3507003