标签: oauth

如何在Django应用程序中进行Facebook登录?

我创建了一个Django应用程序.该应用程序具有登录功能.

有人可以帮助找到一种方法,使用Facebook凭证登录或指向我一些教程来实现它吗?

python django facebook oauth facebook-oauth

42
推荐指数
3
解决办法
3万
查看次数

什么是刷新令牌的意义?

我必须承认我已经有很长一段时间没有这个问题,从来没有真正理解过.

说auth令牌就像一个保险箱的钥匙,当它到期时它不再可用了.现在我们给了一个魔术刷新令牌,可用于获取另一个可用的键,另一个......直到魔术键到期.那么为什么不将auth令牌的到期时间设置为与刷新令牌相同?为什么这么麻烦?

它的正当理由是什么,也许是历史原因?真的很想知道.谢谢

authentication oauth access-token refresh-token

42
推荐指数
4
解决办法
1万
查看次数

使用OAuth令牌查看Vimeo私有视频

任何人都可以使用scribe在Vimeo API中提供帮助吗?我的目标是访问私人视频(我上传),而不必强迫用户输入密码(此过程应在后台完成).

从我的理解/从研究中推断是必要的:

  1. 使用oAuth协议并通过以下链接请求申请授权:

    https://vimeo.com/oauth/authorize?oauth_token=XXXX

    此操作成功执行,响应数据发送到回调URL,如:

    http://127.0.0.1:8001/XPTO.html?oauth_token=AUTH_TOKEN_EXAMPLE&oauth_verifier=VERIFIIER__EXAMPLE"

  2. 根据Brad Dougherty(Vimeo API Staff)的说法,可以做类似的事情

    如果您自己完成OAuth流程,则可以保存该令牌并使用该令牌进行调用.

我正在使用此代码:

service = new ServiceBuilder().provider(VimeoApi.class)
                .apiKey("API_KEY_EXAMPLE")
                .apiSecret("API_SECRET_EXAMPLE")
                .build();

OAuthRequest request = new OAuthRequest(Verb.GET,
        "http://vimeo.com/api/rest/v2?video_id=50305416");

request.addQuerystringParameter("format", "json");
request.addQuerystringParameter("method", "vimeo.videos.getInfo");

String oauth_verifier=VERIFIER__EXAMPLE;
Verifier verifier = new Verifier(oauth_verifier);

//I've tried differents combination to create this token
//I believe that my problem is HERE
//One unsuccessfully try: Token requestToken = service.getRequestToken();
Token requestToken = new Token(
        AUTH_TOKEN_EXAMPLE,
        API_SECRET_EXAMPLE);

Token token = service.getAccessToken(requestToken, verifier);

service.signRequest(token, request); 
Response response = request.send(); …
Run Code Online (Sandbox Code Playgroud)

java oauth vimeo scribe http-status-code-401

42
推荐指数
1
解决办法
3080
查看次数

适用于Web和Mobile的ASP.NET Web API社交身份验证

我的问题有点复杂所以请耐心等待,因为我试图很好地说明我正在努力解决的问题.

目标

有一个ASP.NET网站,允许用户通过用户名/密码或社交(Facebook,Twitter,谷歌等)注册和登录也有API.需要锁定此API [Authorize].API需要能够通过用户名/密码或社交(Facebook,Twitter,Google等)登录的移动客户端(Android,iOS等)访问.

背景

所以我做了一些网站,可以从我的目标做一两件事,但不是全部.在线项目中有一些很好的例子,并在VS项目的示例中构建,这些示例展示了如何让用户通过社交应用程序注册和登录,但它们仅适用于网站而非移动设备.我做了一个网站,Android应用程序使用用户名/密码对该API进行身份验证,但没有任何OAuth或社交凭据.

我开始使用此页面作为参考,但我不知道如何使用它并使其适用于我的网站登录和我的移动应用程序登录.

这家伙听起来很容易,但没有显示任何代码.

是否有可以让我实现目标的教程或GitHub示例?我基本上想要一个人们可以注册用户名/密码或使用他们的社交帐户的网站,并让用户通过移动设备进行相同的操作(注册和登录).移动设备基本上只使用API​​来推送/拉取数据,但我不确定如何将社交登录与我的API结合使用.我假设我需要使用OAuth并走这条路线,但我找不到任何好的例子来说明如何为网络和移动设备做这件事.

或者也许正确的解决方案是让网页都是cookie auth,API是一个单独的"网站",并且都是令牌身份验证,它们都绑定到同一个数据库?

c# asp.net android oauth asp.net-web-api

42
推荐指数
1
解决办法
1万
查看次数

在python中实现HMAC-SHA1

我正在尝试使用网站的OAuth,这要求签名方法仅为"HMAC-SHA1".

我想知道如何在Python中实现它?

python sha1 oauth hmac

41
推荐指数
5
解决办法
5万
查看次数

在Play框架和OAuth2上保护REST API

我正在使用Play 2.0Scala开发一个暴露一些REST API 的应用程序.这些API将由不同的应用程序,Web,移动或桌面使用,因此OAuth协议(OAuth2)似乎是最合适的.

此外,我最初会使用外部OAuth提供商,如Facebook.

我的问题是:授权单个REST调用的确切流程是什么?对于每次通话,我应该在服务器端期望什么以及我应该与外部提供商检查什么?

使用OAuth1我知道客户端发送了带有所有签名请求的令牌,但是我认为不是这样,我想如果签名没有签名是不可信的,因此我不认为这是流程.

scala oauth oauth-2.0 playframework playframework-2.0

41
推荐指数
3
解决办法
2万
查看次数

使用oauth和twitter ruby​​ gems时,请继续获取OAuth :: Unauthorized错误

我正在使用ruby twitter gem和oauth来访问用户的Twitter帐户.在我的代码中,我有:

unless @user.twitter_authd?
      oauth = Twitter::OAuth.new('token', 'secret')
      session[:twitter_request_token] = oauth.request_token.token
      session[:twitter_request_secret] = oauth.request_token.secret
      @twitter_auth_url = oauth.request_token.authorize_url
    end
Run Code Online (Sandbox Code Playgroud)

其中令牌和秘密已插入我的实际令牌和秘密.当我点击@twitter_auth_url的链接时,我被带到twitter并要求授予访问权限.我点击允许,然后叽叽喳喳重定向我到我的回调URL http://www.mydomain.com/twitter_callback/?oauth_token=fmy2aMvnjVgaFrz37bJ4JuB8r5xN79gsgDQRG4BNY然后点击下面的代码:

oauth = Twitter::OAuth.new('token', 'secret')

    logger.info("session[:twitter_request_token] = #{session[:twitter_request_token]}")
    logger.info("session[:twitter_request_secret] = #{session[:twitter_request_secret]}")

    oauth.authorize_from_request(session[:twitter_request_token], session[:twitter_request_secret])
    session[:twitter_request_token] = nil
    session[:twitter_request_secret] = nil

    @user.update_attributes({
      :twitter_token => oauth.access_token.token, 
      :twitter_secret => oauth.access_token.secret,
    })

    redirect_to root_path
Run Code Online (Sandbox Code Playgroud)

Twitter请求令牌和秘密设置得很好.但是我最终得到了授权错误:

 OAuth::Unauthorized in MainController#twitter_callback

401 Unauthorized

RAILS_ROOT: /Users/TAmoyal/Desktop/RoR_Projects/mls
Application Trace | Framework Trace | Full Trace

/Library/Ruby/Gems/1.8/gems/oauth-0.3.4/lib/oauth/consumer.rb:167:in `token_request'
/Library/Ruby/Gems/1.8/gems/oauth-0.3.4/lib/oauth/tokens/request_token.rb:14:in `get_access_token'
/Library/Ruby/Gems/1.8/gems/erwaller-twitter-0.6.13.1/lib/twitter/oauth.rb:29:in `authorize_from_request'
/Users/TAmoyal/Desktop/RoR_Projects/mls/app/controllers/main_controller.rb:70:in `twitter_callback'
Run Code Online (Sandbox Code Playgroud)

代码在此行失败:

oauth.authorize_from_request(session[:twitter_request_token], session[:twitter_request_secret])
Run Code Online (Sandbox Code Playgroud)

当它试图获得访问令牌时.您可以在此处查看authorize_from_request的源代码.我不确定为什么会这样.有人有想法吗?

ruby twitter ruby-on-rails oauth

40
推荐指数
5
解决办法
4万
查看次数

REST中的OAuth令牌和会话

另一分钟我读了一篇关于OAuth的文章.它特别描述了在一系列请求期间在客户端和服务提供者之间交换的令牌.

文章还提到OAuth在RESTful API中作为授权层获得了极大的普及.据我所知,REST应该完全无状态.

问题:难道这种重复的令牌交换不会破坏REST的"无国籍"原则吗?恕我直言,令牌可以看作是一种会话ID,不是吗?

rest session oauth stateless

40
推荐指数
2
解决办法
2万
查看次数

如何获取虚拟谷歌访问令牌来测试oauth google api?

有没有什么方法可以生成访问令牌来测试oauth使用gmail登录?

我创建了一个谷歌应用程序,并得到了客户端和秘密ID.

我知道facebook会允许你这样做这个网址https://developers.facebook.com/tools/accesstoken/

谷歌有这样的方法吗?

谢谢.

oauth google-api

40
推荐指数
2
解决办法
3万
查看次数

Asp.Net MVC 5 Owin Twitter Auth抛出401例外

我使用Owin中间件设置了OAuth身份验证,该中间件基于使用"个人帐户"身份验证启动新Web项目时创建的默认项目.

我稍微调整了一下,但是Facebook和Google工作得很好,但是,当我点击"twitter"按钮发出挑战时,它会抛出500个http异常,并显示错误消息:

响应状态代码不表示成功:401(未授权).

这只是推特.这是我的auth配置:

// Just a configuration section that reads from the web.config
var configuration = new OwinCookieConfigurationSection("owinCookieConfiguration");
app.UseCookieAuthentication(GetCookieAuthenticationOptions(configuration));
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

app.UseTwitterAuthentication(
    consumerKey: "XXX",
    consumerSecret: "XXX"
);

app.UseFacebookAuthentication(
    appId: "XXX",
    appSecret: "XXX"
);

app.UseGoogleAuthentication();
Run Code Online (Sandbox Code Playgroud)

这绝对是一个500错误,而不是401错误,因为它表明我已经确认它永远不会让它通过Twitter的原始帖子挑战.堆栈跟踪似乎显示Twitter未从ObtainRequestToken调用返回成功代码:

堆栈跟踪

有任何想法吗?

twitter oauth twitter-oauth

39
推荐指数
1
解决办法
7104
查看次数