在加载其他任何内容之前检查用户是否已登录
Check if user has been Logged In before loading anything else
我正在制作一个简单的阅读画布应用程序,我想在加载任何内容/文章之前检查用户是否已登录。我自然有FB。Init 方法,我里面有一个 getLoginStatus,它看起来像这样(我已经删除了我的命名空间和 ID(:
<script>
window.fbAsyncInit = function() {
FB.init(
{
appId : '[APP ID]', // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.getLoginStatus(function(response) {
if (!response.authResponse) {
var oauth_url = 'http://www.facebook.com/dialog/oauth/';
oauth_url += '?client_id=[APP ID]';
oauth_url += '&redirect_uri=' + encodeURIComponent('http://apps.facebook.com/[APP NAMESPACE]/');
oauth_url += '&scope=read_stream,publish_stream,offline_access'
window.top.location = oauth_url;
}
});
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
但无论我做什么,它都会首先加载我的HTML内容(我的文章,Divs,Paragrafs,文本......(,并在完成后重定向。
脚本是我的HTML的头。我也尝试通过正文中的 onLoad(( 方法加载它,但这也没有用,它仍然在重定向之前加载我的一些 HTML 内容。
在加载HTML代码的单个字母或图像之前,我如何检查用户是否登录到Facebook(如果他没有登录,则重定向(?
您正在使用 facebook js sdk 的异步加载,更重要的是,一旦您从服务器发送输出(静态内容或动态内容(,浏览器就会获取整个内容并加载它,对此您无能为力。
如果您想检查用户之前是否经过身份验证,那么我建议您使用服务器端身份验证流。这样,您可以在将内容返回给用户之前就知道状态,如果您发现他未经过身份验证,那么您发回给他的内容就是重定向内容。仅当用户返回身份验证时,才会发回画布内容。
编辑
如果您的整个应用程序都是静态的,请保持这种方式,无需添加 php(或任何其他服务器端解决方案(仅用于服务器端身份验证。
我不确定您为什么介意在重定向之前加载页面,这里有两个"解决方案":
(1(加载一个最小化的页面,该页面只有fb sdk和用于检查用户是否登录的方法,如果他没有登录,则重定向他。如果他已登录,则加载一个脚本,该脚本添加其余内容并将其动态添加到 dom。
(2(如果您只是不希望用户在登录之前看到某些内容,只需使用css隐藏该部分,并在他登录时使用javasript更改它。
- 使用javascript反复检查用户在facebook上的登录状态
- 如何检查用户在html5视频播放器中观看了完整的视频
- 如何检查用户已经登录facebook
- 如何检查用户是否使用$routeChangeStart登录angularjs
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 如何使用sendy检查用户(已订阅或未订阅)的状态
- 从后端检查Open Social小工具中的用户身份验证
- 检查用户是否在Orchard CMS中获得授权
- HTML.如何检查用户是否在表单中输入了文本
- 如何检查用户是否开始关注
- 检查用户是否正在访问纯根url
- 检查用户是否具有角色分析云代码
- 流星用户帐户和alanning流星角色-登录时检查角色
- 如何检查用户是否已经在NodeJs-Mongoose中关注其他用户
- 检查请求的用户是否是django中的所有者
- 如何检查当前用户电子邮件是否已在客户端js文件中验证
- 如何在将鼠标悬停在提交/锚点上时检查复选框是否已选中,并显示提示用户这样做的警报
- Facebook JavaScript SDK 检查用户是否为粉丝(错误:指定的版本无效)
- 角度2:检查用户的浏览器是否兼容
- 如何使用AngularJS中的ng模型获取复选框值(由用户检查)