URL-адреса перенаправления OAuth будут вызываться, когда вы вручную создаете поток входа .
Самый простой и быстрый способ реализовать вход в Facebook - использовать наши официальные SDK для JavaScript, iOS и Android. Мы рекомендуем вам следовать нашим отдельным руководствам для этих платформ.
Однако, если вам нужно реализовать вход в систему через браузер для приложения без использования наших SDK , например, в веб-представлении для нативного пользователя. Настольное приложение (например, Windows 8) или поток входа в систему с использованием полностью серверного кода. Вы можете создать поток входа в систему для себя, используя перенаправления браузера .
Если вы используете кнопку входа FB с Javascript SDK, вместо этого будет вызываться функция обратного вызова .
Первый шаг при загрузке вашей веб-страницы - определить, является ли человек уже зашли на вашу веб-страницу через Facebook. Вызов FB.getLoginStatus начинает звонок в Facebook, чтобы получить статус входа. Facebook затем вызывает вашу функцию обратного вызова с результатами.
Если вы собираетесь работать с кнопкой входа в FB, вы можете сделать следующее:
javascript
FB.getLoginStatus(response => {
if (response.status === 'connected') {
const uid = response.authResponse.userID;
const accessToken = response.authResponse.accessToken;
FB.api('/me', { locale: 'tr_TR', fields: 'email,name' }, response => {
// if you're using jQuery
$.post(
"https://your.server/loginEndpoint",
{
provider: 'facebook',
uid,
accessToken,
email,
// name
}, response => {
if (response.success) {
location.href = "https://your.site/landing-page"
}
}
)
// if you using Axios
Axios.post("https://your.server/loginEndpoint", {
provider: 'facebook',
uid,
accessToken,
email,
// name
}).then(response => {
if (response.success) {
location.href = "https://your.site/landing-page"
}
});
});
}
})
на стороне сервера (псевдокод)
provider = request.provider
uid = request.uid
email = request.email
user = db.findBySocialID(provider, uid, email /* or not */)
if (user) {
login(user)
response.send(success: true)
} else {
response.send(success: false)
}