如何在 Meteor 应用程序中使用 Facebook 登录
How to use Facebook Login in a Meteor App
我正在尝试仅使用 Facebook 创建自定义登录,并且只寻找两个端点:"name" 和 "avatar"。
对于初学者,我什至不知道 "avatar" 是否是一个真正的端点名称,但这就是我要访问的名称。
我已经在 FB 上创建了一个测试应用程序,我还安装了我需要的所有 Meteor 包,所以基础工作已经完成。
I've create the following template:
<template name="Login">
<h2>Login</h2>
{{#if currentUser}}
{{currentUser.services.facebook.name}}
{{currentUser.services.facebook.avatar}}
<button id="logout">Logout</button>
{{else}}
<button id="facebook-login" class="btn btn-default">Login with Facebook</button>
{{/if}}
</template>
然后在 SERVERS 目录中我创建了一个 .js 文件来存储我的 API 密钥。
我的问题:
我的第一个问题是在哪里可以找到这些端点的名称,因为我一直在浏览 FB 上的整个文档,没有任何参考文献 "name" 或 "avatar" 所以我首先需要了解的是在哪里可以找到这些端点,因为我什至无法找到 "name".
第二个问题是 API 显示 JSON objects,这通常是您连接端点的方式,但在 Meteor 中,因为所有这些都是抽象的,所以不清楚这个 "facebook" object 的存在是为了更深入地研究 "name" 和 "avatar" 等嵌套属性(我再次不确定 属性 是否是正确的名称).我假设因为我正在使用 Meteor 调用这样的端点 {{currentUser.services.facebook.name}}
就足够了,我是否正确地考虑了这一点?
最后一个问题是我是否必须在我的模板中像这样调用这些端点:
{{#if currentUser}}
{{currentUser.services.facebook.name}}
{{currentUser.services.facebook.gender}}
<button id="logout">Logout</button>
{{else}}
<button id="facebook-login" class="btn btn-default">Login with Facebook</button>
{{/if}}
然后即使我像这样将我的 facebook 名称和性别包装在他们自己的 div 中:
{{#if currentUser}}
<div class="name">
{{currentUser.services.facebook.name}}
</div>
<div class="avatar">
{{currentUser.services.facebook.avatar}}
</div>
<button id="logout">Logout</button>
{{else}}
<button id="facebook-login" class="btn btn-default">Login with Facebook</button>
{{/if}}
这对我来说仍然不是很明显如何移动它说 header?
所以换句话说,我如何让用户从页面的主 body 登录,但在他们登录后在 header 中显示实际的用户名和头像?
我没有明显的方法可以做到这一点。
我错过了什么?当我刚刚通过页面的 body 登录用户时,我如何 DOM 随机移动 .name 和 .avatar div 到 header?
这有意义吗?
我的预感是我必须在 header 中创建另一个调用这些值的模板?
有人玩这个可以提供一些见解吗?
谢谢。
你的问题的第一部分在这里得到回答:
您问题第二部分的答案在文档中。你可以制作一个模板助手来检查这个:
Template.header.helpers({
currentUser: function(){
if(Meteor.user()){
return true;
}
else{
return false;
}
}
});
然后在您的模板中只写:
{{#if currentUser}}
{{!-- your facebook code here --}}
{{/if}}
我正在尝试仅使用 Facebook 创建自定义登录,并且只寻找两个端点:"name" 和 "avatar"。
对于初学者,我什至不知道 "avatar" 是否是一个真正的端点名称,但这就是我要访问的名称。
我已经在 FB 上创建了一个测试应用程序,我还安装了我需要的所有 Meteor 包,所以基础工作已经完成。
I've create the following template:
<template name="Login">
<h2>Login</h2>
{{#if currentUser}}
{{currentUser.services.facebook.name}}
{{currentUser.services.facebook.avatar}}
<button id="logout">Logout</button>
{{else}}
<button id="facebook-login" class="btn btn-default">Login with Facebook</button>
{{/if}}
</template>
然后在 SERVERS 目录中我创建了一个 .js 文件来存储我的 API 密钥。
我的问题:
我的第一个问题是在哪里可以找到这些端点的名称,因为我一直在浏览 FB 上的整个文档,没有任何参考文献 "name" 或 "avatar" 所以我首先需要了解的是在哪里可以找到这些端点,因为我什至无法找到 "name".
第二个问题是 API 显示 JSON objects,这通常是您连接端点的方式,但在 Meteor 中,因为所有这些都是抽象的,所以不清楚这个 "facebook" object 的存在是为了更深入地研究 "name" 和 "avatar" 等嵌套属性(我再次不确定 属性 是否是正确的名称).我假设因为我正在使用 Meteor 调用这样的端点 {{currentUser.services.facebook.name}}
就足够了,我是否正确地考虑了这一点?
最后一个问题是我是否必须在我的模板中像这样调用这些端点:
{{#if currentUser}}
{{currentUser.services.facebook.name}}
{{currentUser.services.facebook.gender}}
<button id="logout">Logout</button>
{{else}}
<button id="facebook-login" class="btn btn-default">Login with Facebook</button>
{{/if}}
然后即使我像这样将我的 facebook 名称和性别包装在他们自己的 div 中:
{{#if currentUser}}
<div class="name">
{{currentUser.services.facebook.name}}
</div>
<div class="avatar">
{{currentUser.services.facebook.avatar}}
</div>
<button id="logout">Logout</button>
{{else}}
<button id="facebook-login" class="btn btn-default">Login with Facebook</button>
{{/if}}
这对我来说仍然不是很明显如何移动它说 header?
所以换句话说,我如何让用户从页面的主 body 登录,但在他们登录后在 header 中显示实际的用户名和头像?
我没有明显的方法可以做到这一点。
我错过了什么?当我刚刚通过页面的 body 登录用户时,我如何 DOM 随机移动 .name 和 .avatar div 到 header?
这有意义吗?
我的预感是我必须在 header 中创建另一个调用这些值的模板?
有人玩这个可以提供一些见解吗?
谢谢。
你的问题的第一部分在这里得到回答:
您问题第二部分的答案在文档中。你可以制作一个模板助手来检查这个:
Template.header.helpers({
currentUser: function(){
if(Meteor.user()){
return true;
}
else{
return false;
}
}
});
然后在您的模板中只写:
{{#if currentUser}}
{{!-- your facebook code here --}}
{{/if}}