sytuacja:Jak zweryfikować recaptcha w wywołaniu serwera?
Kiedyś sprawdź mój reCAPTCHA o prostej formie przedstawienia z POST na "/ login".
muszę zmienić moje wykonanie ze względów bezpieczeństwa i chciałbym zrobić coś takiego:
1) Forma Jquery przedstawienia.
2) Wykonaj połączenie z serwerem, aby zadzwonić, sprawdź recaptcha na serwerze.
3) Otrzymuj odpowiedź bez ponownego ładowania strony.
4) Zaakceptuj żądanie logowania lub nie na podstawie odpowiedzi.
PYTANIE:
Wygląda na to mogę zrobić żądania AJAX? Ale nie wiem jak. KOD
KLIENT:
<div class ="containerMargins">
<h1 class = "authTitle">Login</h1>
<form id="loginForm">
<div class="form-group">
<label>Email</label>
<input type="email" class="form-control" name="email" id="loginEmail" placeholder="You can't forget it :)" required>
</div>
<div class="form-group">
<label>Password</label>
<input type="password" class="form-control" name="password" id="loginPassword" placeholder="We hope you didn't forget it ^^" required minlength="12">
</div>
<div class="g-recaptcha" data-sitekey="6LcRrxMUAAAAANx-AXSdRLAo4Pyqfqg-1vuPSJ5c"></div>
<button class="btn btn-default" id="loginButton">Submit</button> <span class="userLinks">
<a class="logLinks" href="https://stackoverflow.com/users/register">Register</a><a href="https://stackoverflow.com/users/password">Password?</a></span>
</form>
</div>
</div>
<% include ../partials/indexScripts %>
<script>
$("#loginForm").submit(function(e) {
e.preventDefault();
var email = $("#loginEmail").val();
var password = $("#loginPassword").val();
// WOULD LIKE TO MAKE SERVER CALL HERE TO CHECK RECAPTCHA BUT I DONT KNOW HOW
$this = $(this);
$.ajax({
type: "POST",
url: "users/register",
data: $this.serialize()
}).done(function(data) {
if (successfulRecaptcha) {
firebase.auth().signInWithEmailAndPassword(email, password).then(authData => {
}
else {
console.log("You are a robot!");
}
serwer kodu
router.post('/login', function(req, res, next) {
verifyRecaptcha(req.body["g-recaptcha-response"], function(success) {
if (success) {
} else {
}
});
});
To NodeJS na serwerze? nie podałeś tak – DannyZB
@DannyZB tak. To jest. – Coder1000