标签: facebook-oauth

设置Javascript API accessToken

我正在开发一个Facebook应用程序.我有一个服务器端OAuth流程,它允许我验证用户,而无需他点击任何按钮.因此,只要其他信息检索他的accessToken,并在生成页面之前在服务器端使用这些信息.

在我的应用程序中,我现在需要使用Javascript API,它可以在技术上共享相同的 Oauth令牌.

是否可以使用给定的Oauth令牌实例化FB javascript对象?

我知道可以做相反的意思,即在客户端执行Oauth进程并通过cookie与服务器端共享Oauth密钥,但我认为这有两个缺点:_首先,它意味着有这个"登录"按钮对我来说不是一个Facebook应用程序的良好用户体验._此外,如果我的应用程序由两个不同的页面组成,我不知道这个Oauth进程应该如何表现.从一个页面转到另一个页面完全重新加载javascript.这个Oauth进程(使用弹出窗口等)是否会在每个页面重新加载时完成?

谢谢你的帮助 !

javascript api access-token facebook-oauth

6
推荐指数
1
解决办法
3994
查看次数

oAuth用于记住用户的标准是什么?

我和我的同事开发了一个应用程序(包括Web应用程序和移动应用程序(iPhone和android)),其中包括一个登录过程.目前,我们拥有自己的登录机制(用户已在我们的应用程序上签署了帐户,并将其信息存储在我们的数据库中).我们正在寻求整合oAuth并允许用户使用Facebook,Twitter,LinkedIn和Google登录.

现在,当用户使用其中任何一个进行登录时,据我所知,登录过程发生在我们的应用程序之外,并且基本上只获得访问其资源的权限.

我的问题是:通过oAuth,我们如何记住用户?即,登录的用户具有读/写权限并具有首选项.当他们没有通过我们的应用程序实际注册时,我们如何记住这些...我们可以将他们的电子邮件地址存储在我们的"用户"表中吗?

在这种情况下,最佳做法是什么?

感谢您提供的任何信息.

oauth user-accounts twitter-oauth facebook-oauth

6
推荐指数
1
解决办法
1889
查看次数

Spring Social - Facebook登录404错误

我在我的应用程序中有春季安全登录的春季3.1.我正在尝试使用spring social添加facebook登录.它进入Facebook登录页面,但登录后它会引发404错误.我在URL中有这个:

http://localhost:8080/TestProject/signin?error=provider#_=_
Run Code Online (Sandbox Code Playgroud)

这是我的春季社交配置:

<bean class="org.springframework.social.connect.web.ProviderSignInController">
<!-- relies on by-type autowiring for the constructor-args -->    
<constructor-arg ref="signInAdapter" />
</bean>

<bean id="connectionFactoryLocator" 
  class="org.springframework.social.connect.support.ConnectionFactoryRegistry">
<property name="connectionFactories">
    <list>
        <bean class="org.springframework.social.facebook.connect.FacebookConnectionFactory">
            <constructor-arg value="${fb.id}" />
            <constructor-arg value="${fb.passwrd}" />               
        </bean>
    </list>
</property>
</bean>

<bean id="connectionRepository" factory-method="createConnectionRepository" 
  factory-bean="usersConnectionRepository" scope="request">
<constructor-arg value="#{request.userPrincipal.name}" />
<aop:scoped-proxy proxy-target-class="false" />
</bean>

<bean id="signInAdapter" class="com.Test.social.SimpleSignInAdapter"/>

<bean id="usersConnectionRepository" 
  class="org.springframework.social.connect.jdbc.JdbcUsersConnectionRepository">
<constructor-arg ref="dataSource" />
<constructor-arg ref="connectionFactoryLocator" />
<constructor-arg ref="textEncryptor" />
</bean>

<bean id="textEncryptor" class="org.springframework.security.crypto.encrypt.Encryptors" 
        factory-method="noOpText" />
 </beans> 
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

spring spring-mvc spring-security facebook-oauth spring-social

6
推荐指数
1
解决办法
2473
查看次数

Meteor.loginWithFacebook不能正常工作?

添加了accounts-facebook包.我试图按照文档登录Facebook:http://docs.meteor.com/#meteor_loginwithexternalservice

有这个按钮点击事件:

Meteor.loginWithFacebook({ requestPermissions: ['email']},
function (error) {
    if (error) {
        return console.log(error);
    }
});
Run Code Online (Sandbox Code Playgroud)

并在服务器上进行此设置:

Accounts.loginServiceConfiguration.remove({
    service: "facebook"
});
Accounts.loginServiceConfiguration.insert({
    service: "facebook",
    clientId: "389711236782370",
    secret: "2wwd9c47589e3eb19e7dbgfb235b6a12"
});
Run Code Online (Sandbox Code Playgroud)

我在facebook登录弹出窗口中得到一个未定义的client_id:https://www.facebook.com/dialog/oauthclient_id = undefined&redirect_uri = http://localhost:3000/_oauth/facesbook?close ...

即使我使用Meteor生成的{{loginButtons}},我也会得到相同的结果.我还添加了谷歌包,它的工作完美.谢谢你的帮助.

oauth facebook-oauth meteor

6
推荐指数
1
解决办法
4960
查看次数

Ruby on Rails设计Oauth-facebook OmniAuth :: Strategies :: OAuth2 :: CallbackError

我正在用facebook和devise实现oauth登录,当从接受应用程序(弹出窗口)返回时,我收到以下错误:

无法通过Facebook验证您,因为"Csrf已检测到".

这是日志:

在2014-01-23 23:59:58开始GET"/ users/auth/facebook/callback"为127.0.0.1 +0100 ActiveRecord :: SchemaMigration Load(0.3ms)SELECT"schema_migrations".*FROM"schema_migrations"(facebook )回调阶段已启动.(脸谱)认证失败!csrf_detected:OmniAuth :: Strategies :: OAuth2 :: CallbackError,csrf_detected | CSRF检测到

我的用户模型

class User < ActiveRecord::Base
    devise :token_authenticatable, :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable, :confirmable,
     :omniauthable, :omniauth_providers => [:facebook]
    before_save :ensure_authentication_token

    has_one :user_settings
    has_many :predictions
    has_many :user_leagues
    has_many :leagues, through: :user_leagues # this wasn't working, solution found: http://stackoverflow.com/questions/1781202/could-not-find-the-association-problem-in-rails

    valid_email_regex = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i
     validates :email, format: { with: valid_email_regex }

    validates :firstName, :lastName, :username, presence:true
    acts_as_voter

    def self.find_for_facebook_oauth(auth)
      where(auth.slice(:provider, :uid)).first_or_initialize.tap do |user|
        user.provider …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails oauth csrf devise facebook-oauth

6
推荐指数
1
解决办法
7174
查看次数

从没有服务器的桌面客户端到OAuth的正确方法

我正在开发一个必须与Facebook连接以下载一些用户数据的扩展.我对OAuth舞蹈的细节有点新鲜,并且无法以期望的安全级别实现这一点.在当前的设置(有效)我​​担心恶人劫持我的应用程序的名称并使用它来发布垃圾邮件.

我尝试了许多不同的技术来在我的扩展中实现OAuth(特别是在Facebook上登录).当前设置使用Facebook的手动登录流程.

  1. 在沙盒选项卡中打开OAuth弹出窗口.
  2. 将redirect_url设置为不需要配置重定向URL的特殊内部Facebook页面,将auth_token参数设置为返回auth_token,而不是临时代码.
  3. 将javascript注入特殊重定向页面,该页面使用auth_token将消息发布到扩展名.

这按预期工作.我可以通过弹出窗口提供我的应用程序权限后检索用户auth_tokens.

我担心安全性,因为扩展没有服务器来存储密钥,也没有有效的域来限制redirect_urls并验证授权请求的真实性.由于这个流程:黑客可以简单地将源下载到我的扩展,窃取Facebook App ID,从他们自己的网站为我的应用程序生成弹出窗口,并获得auth_tokens,可以代表"通过"我的应用程序发布.

令人担忧的是,官方Google Chrome对扩展中的OAuth的古老建议将您的consumer_secret嵌入到扩展程序中.这似乎违反直觉.

我有理由相信这可以通过两种方式解决:

  1. 创建我自己的服务器,充当我的扩展和Facebook之间的代理.我可以将redirect_url设置为我的自定义域,将consumer_secret存储在我的服务器上,并在客户端和我自己的服务器之间定义一个狭窄的API.
  2. 将授权重定向限制为我的Chrome扩展ID(有点像Facebook iOS SDK如何使用App Store捆绑标识符).很遗憾,我无法将我的Facebook应用与Chrome扩展程序ID相关联.它说"URL无效".

我更喜欢第二种选择,因为运行服务器可能代价高昂,并为扩展引入了另一个故障点.用户还必须处理持有auth_tokens的"黑匣子"代码,这很糟糕.

有趣的是,看起来Facebook对ms-app:// URL(Windows 8应用程序)提出了特殊例外.为什么不chrome-extension:// urls?

所以我的问题: - 这可能吗?我错过了什么吗?第二:我是否对这种类型的劫持攻击感到偏执?它似乎相当温和,但我宁愿不允许黑客劫持我的应用程序的oauth对话框.

谢谢

google-chrome-extension facebook-graph-api oauth-2.0 facebook-javascript-sdk facebook-oauth

6
推荐指数
1
解决办法
318
查看次数

Facebook登录桌面应用程序

我们的桌面应用程序(用Java编写并在Windows上运行但未在Windows应用程序商店中注册)需要在用户的Facebook配置文件上发布图像(使用publish_actions权限).

虽然我们的实施工作在测试模式(我们能够在测试用户的个人资料上发布),但我们的申请提交已经被Facebook拒绝并提出以下意见:

在此输入图像描述

我们目前的实施如下:

  • 我们正在使用"手动登录流程"(如下所述:https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/v2.2),基于以下内容应用网页浏览器
  • 我们使用的登录网址是:https://www.facebook.com/dialog/oauth? client_id=xxx & redirect_uri = www.mydomain.com/login_successful.html & response_type = token & scope = publish_actions(其中mydomain.com是我们的实际网站,xxx是我们的应用程序ID)
  • 在我们的应用程序配置(http://developers.facebook.com)上,我们已将"网站"指示为平台(因为所有其他人都需要应用程序商店应用程序ID),并且已将我们的网站域名作为站点URL提供(将移动站点URL保持为空)
  • 我们还在应用程序的高级配置中指出它是"本机或桌面应用程序",并且"嵌入了App Secret"

由于这种方法在审查我们的应用程序提交时被Facebook拒绝(虽然它确实在测试模式下工作),我们尝试了另一种方法:

但不幸的是,这会在加载登录URL时生成以下错误消息:

应用程序配置不允许使用URL:应用程序的设置不允许使用一个或多个给定的URL.它必须与网站URL或Canvas URL匹配,或者域必须是App域之一的子域.

任何帮助或提示都非常受欢迎,因为我们已经被阻止了好几周.谢谢!托马斯

facebook facebook-graph-api facebook-oauth

6
推荐指数
1
解决办法
3387
查看次数

Rails前端应用程序中的Google/Facebook OAuth2,使用rails-api作为webservice

我有我的前端rails应用程序也使用AngularJs我也有一个api后端也写在Rails(使用rails-api宝石).我已经为这个系统实现了登录系统.现在我想实施login with facebook/google.我通过互联网搜索,到目前为止我找到了这个博客.在这个博客中,我得到了google OAuth 2在Android中使用Rails作为后端实现的想法.但在我的情况下,我想google OAuth 2在我的前端应用程序(Rails + Angular)中实现Rails作为后端.

对于实施的google OAuth 2,前端应用程序需要请求tokengoogle oauth2 authorization server和我对如何做到这一点不知道.

另外,使用rails来请求令牌是好的,或者我可以将Angular用于该部分.为此目的,最佳做法是什么?

ruby-on-rails facebook-oauth angularjs rails-api google-oauth2

6
推荐指数
1
解决办法
1212
查看次数

谷歌分析和Oauth(Facebook登录)

TL; DR; Facebook登录使得原始推荐URL发生变化,因为在GA中,它看起来像是最初来自Facebook.

使用Google Analytics(UA)进行Facebook(Oauth)登录时,我们遇到以下问题:

  • 用户登陆/ page/1?utm_campaign = aaa和GA会话是使用正确的初始引荐来源,广告系列等创建的.

  • 用户访问其他几个页面并决定使用Facebook注册

  • Facebook登录使用户的浏览器转到Facebook并返回更改推荐,从而创建新的GA会话

  • 当用户回到我们的回调网址时,我们会触发一个在GA中转换为目标的事件

问题是所有使用Oauth注册的用户都将推荐设置为Facebook,并将登陆页面设置为Facebook回调后登陆的页面,因为当GA"重置"会话时:(.

有没有办法在GA中加入两个会话并让它知道它始终是同一个用户,以便Facebook注册保留有关初始引荐来源,登录页面,UTM等的完整信息?

google-analytics facebook-oauth universal-analytics

6
推荐指数
1
解决办法
1642
查看次数

在asp net中从facebook获取用户电子邮件

我正在尝试从Facebook获取用户名和用户电子邮件.我阅读了很多关于这个主题的信息,这是我的最终代码,仅在我的facebook app管理员帐户上有效:

public partial class Startup
{
    public void ConfigureAuth(IAppBuilder app)
    {

        /*Other external login options*/

         var FacebookOptions = new FacebookAuthenticationOptions()
                {
                    AppId = "My App Id",
                    AppSecret = "My App Secret",
                    SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie,
                    BackchannelHttpHandler = new FacebookBackChannelHandler(),
                    UserInformationEndpoint = "https://graph.facebook.com/v2.7/me?fields=id,name,email"
                };


    }
}
public class FacebookBackChannelHandler : HttpClientHandler
{
    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
    {
        if (!request.RequestUri.AbsolutePath.Contains("/oauth"))
        {
            request.RequestUri = new Uri(request.RequestUri.AbsoluteUri.Replace("?access_token", "&access_token"));
        }

        return await base.SendAsync(request, cancellationToken);
    }
}
public class AccountController : Controller …
Run Code Online (Sandbox Code Playgroud)

c# asp.net oauth facebook-oauth

6
推荐指数
1
解决办法
4314
查看次数