首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook登录按钮有时检索错误的用户电子邮件

Facebook登录按钮有时检索错误的用户电子邮件
EN

Stack Overflow用户
提问于 2016-01-07 17:01:07
回答 1查看 159关注 0票数 0

我有一个名为“推荐书”的社交网络,我使用Facebook和Google登录按钮在用户第一次单击该按钮时注册,并在用户第二次单击该按钮时将其记录下来。前几天,我和一个女孩聊天,向她展示我的网站,我试着用facebook登录按钮在我的网站上注册她,系统将她登录到另一个用户的账户中,而不是注册她。现在,我几乎可以肯定是facebook的一个bug让facebook系统返回了来自另一个人的电子邮件,我想知道这是否是facebook登录按钮上的一个问题,将用户记录在错误的帐户中。所以我贴上了确切的代码,移动版本,我想问一下这段代码是否有什么问题,它能让facebook系统从试图登录的用户那里返回另一个用户的电子邮件吗?这是一个问题,在所有的facebook登录按钮登录用户在错误的帐户?

代码语言:javascript
复制
<script type="text/javascript"> 
<!--

$(document).ready(function(){

	$(".SpinnerTR").hide();

});

function myTrim(x) {
	return x.replace(/^\s+|\s+$/gm,'');
}

function setCookiesRB(id) {
	var date = new Date();
	date.setTime(date.getTime() + (365 * 24 * 60 * 60 * 1000));

	var url = "http://localhost:8989/Login.jsp";

	if(url.toLowerCase().indexOf("localhost:8989") >= 0) {
		document.cookie = "IsRecommenderLogged=Yes; expires="+date.toGMTString()+"";
		document.cookie = "RecommenderId="+id+"; expires="+date.toGMTString()+"";
	} else {
		document.cookie = "IsRecommenderLogged=Yes; expires="+date.toGMTString()+"; domain=recommendationbook.com;path=/";
		document.cookie = "RecommenderId="+id+"; expires="+date.toGMTString()+"; domain=recommendationbook.com;path=/";
	}
}

/*
 *
 * Facebook Login
 *
 */

function statusChangeCallback(response) {
	if(response.status === 'connected') {
		$(document).ready(function(){
			$(".GoogleFacebookButtons").hide();
			$(".SpinnerTR").show();
		});
		register();
	} else if(response.status === 'not_authorized') {
		
	} else {
		// The person is not logged into Facebook, so we're not sure if they are logged into this app or not.
	}
}

function checkLoginState() {

	FB.login( function(response) {
		FB.getLoginStatus(function(response) {
			statusChangeCallback(response);
		});
	}, { scope: 'public_profile,email,user_birthday' } );

}

window.fbAsyncInit = function() {
	FB.init({
		appId : '1054429214574465',
		cookie : true,
		xfbml : true,
		version : 'v2.2'
	});

	FB.getLoginStatus(function(response) {
		// statusChangeCallback(response);
	});
};

(function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

function register() {
	FB.api('/me', function(response) {

		var name = "";
		var email = "";
		var gender = "";
		var locale = "";
		var birthday = "";

		if(typeof response.name != "undefined") {
			name = ""+response.name+"";
		}

		if(typeof response.email != "undefined") {
			email = ""+response.email+"";
		}

		if(typeof response.gender != "undefined") {
			gender = ""+response.gender+"";
		}

		if(typeof response.birthday != "undefined") {
			birthday = ""+response.birthday+"";
		}

		if(typeof response.locale != "undefined") {
			locale = ""+ response.locale+"";
		}

		var posting = $.post("LoginFacebook.jsp", {name: name, email: email, gender: gender, locale: locale, birthday: birthday});

		posting.done(function(data) {

			setCookiesRB(""+myTrim(data)+"");

			window.location.href = "http://recommendationbook.com/Recommender.jsp?id="+myTrim(data)+"";
		});
	});
}

//-->
</script>
代码语言:javascript
复制
<!DOCTYPE html>

<html lang="en-US">

<head>
 
<title>Recommendation Book</title>
 
<meta name="keywords" content="Recommendation Book Login" />
<meta name="description" content="Recommendation Book Login Page" />

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

<body>

<div class="Geral">

	<div class="Corpo">

		<form method="post" id="Login" action="DoLogin.jsp" enctype="multipart/form-data">
				<table>
				<tbody>

				<tr class="GoogleFacebookButtons"><td class="tdLeft">
					<div style="width: 100%; text-align: center">
					Facebook Login and Registration<br />
					<a href="#" onclick="checkLoginState();"><img src="./img/static/FacebookButtonBig.PNG" border="0" alt=""></a>
					</div>
				</td></tr>

				<tr class="SpinnerTR"><td>Wait... <div id="Spinner" class="Spinner" style="display: inline;"><img width="200" height="200" src="./img/static/ajax-loader-GoldenRod.gif" alt="" /></div></td></tr>

				</tbody>
				</table>
		</form>

	</div>

</div>

</body>
 
</html>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-12 02:03:05

我发现了错误。是站在我这边的。我认为如果用户成功登录,facebook总是会回复一封电子邮件。但是,通过facebook登录按钮登录的用户可以拒绝许可,然后facebook系统会返回垃圾邮件或普通的facebook电子邮件。我的一个用户注册了,当我没有检查的时候,我把返回的垃圾facebook放在电子邮件的位置,我没有注意到。后来,当我试图给这个女孩注册时,我提到了facebook系统返回了同样的垃圾,这就是为什么她被登录到另一个女孩的账户中。为了解决这个问题,我在javascript中放置了以下条件:

代码语言:javascript
复制
var emailRegex = new RegExp("^([a-zA-Z0-9_.-]+)@([a-z0-9_.-]+)$");

if(!emailRegex.test(email) || email.toLowerCase().indexOf("facebook.com") >= 0) { }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34660990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档