Я работаю над проектом и хочу реализовать кнопку входа в Google и Facebook.Первое, что я сделал, это зашел к официальному руководству и протестировал этот простой код, и он работает.
<html lang="en">
<head>
<meta name="google-signin-scope" content="profile email">
<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">
<script src="https://apis.google.com/js/platform.js" async defer></script>
</head>
<body>
<div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div>
<script>
function onSignIn(googleUser) {
// Useful data for your client-side scripts:
var profile = googleUser.getBasicProfile();
console.log("ID: " + profile.getId()); // Don't send this directly to your server!
console.log('Full Name: ' + profile.getName());
console.log('Given Name: ' + profile.getGivenName());
console.log('Family Name: ' + profile.getFamilyName());
console.log("Image URL: " + profile.getImageUrl());
console.log("Email: " + profile.getEmail());
// The ID token you need to pass to your backend:
var id_token = googleUser.getAuthResponse().id_token;
console.log("ID Token: " + id_token);
};
</script>
</body>
</html>
Теперь я хочу соединить данные, полученные с моей базой данных, и так как я получил данные с помощью javascript, я отправляю их с AJAX в общую функцию с PHP, которая принимает 3 параметра (электронная почта, пароль, метод).В методе я ожидаю, что одно из этих трех значений («GOOGLE», «FACEBOOK», «FORM») будет знать, какое это было соединение.С помощью «GOOGLE» я отправляю id_token вместо пароля.
function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
var posting = $.post(
"ajax.php",
{
"AjaxPostQuery": "Connect",
"ConnLogin": profile.getEmail(),
"ConnPWD": googleUser.getAuthResponse().id_token,
"method" : "GOOGLE"
}
);
posting.done(function(data) {
console.log(data);
$("#connectBox").empty().append(data);
if(data === ""){
$("#connectBox").empty().append("You are connected");
location.reload();
}
});
}
Вопросы
- Должен ли я повторно реализовать протокол Oauth с помощью php, чтобы проверить правильность электронной почты и id_tokenили нет?
- Могу ли я просто доверять данным, полученным с помощью AJAX (в этом случае любой может переслать данные с консоли)
- Я просто идиот и что-то пропустил?
- Есть конкретные данные для хранения в базе данных и просто их сравнить?