Articles of oauth

Android和OAUTH 2.0

我无法解决这个问题来挽救我的生命! 所以,我有一个基于Codeigniter的REST api,带有OAUTH 2.0(草案23或其他)服务器,用于我自己的auth系统(不使用Twitter或FB) 我希望能够使用它来允许用户“登录”到我的Android应用程序。 我无法在互联网上find任何关于此的信息。 有一些不受支持的OAUTH 2.0客户端库,例如Leeloo(转移到Apache Amber,已经更新超过一年,并且在Amber下没有发布)。 因此,我的问题是: OAUTH 2.0太新了吗? 它似乎已经有几年的历史……它仍然太新了。 我应该使用OAUTH 1吗? (无论如何似乎都不支持 – 所有的codeigniter OAUTH 1 libs都已移至2.0)。 我应该使用完全不同的技术吗? 例如,我听说过“xauth”。 关于这一点的信息似乎相当粗略。 做自己容易的事吗? 它似乎不是这样,但大多数人只是创建自己的自制软件解决方案吗? 我也找不到太多关于此的信息。 你能给我的任何帮助都会很棒。 你也可以指出我的任何资源都会非常惊人。 谢谢你的时间。

onNewIntent(intent)无法正常工作

我正在构建这个Twitter应用程序,其中调用浏览器以从我的主要活动进行身份validation..在线程中运行以下代码(AsyncTask) Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)).setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_FROM_BACKGROUND); context.startActivity(intent); 这里 context is the context of main activity..the uri is returned through `intent`.. 在认证之后,它要做的是回到我的主要活动,到现在的状态。现在发生的是,它创建了另一个主要活动的实例。 我在用 @Override public void onNewIntent(Intent intent) { super.onNewIntent(intent); SharedPreferences prefs = getSharedPreferences(“twitter”, 0); final Uri uri = intent.getData(); if (uri != null && uri.getScheme().equals(Constants.OAUTH_CALLBACK_SCHEME)) { setLoggedIn(true, tlogout); tstatus=true; new […]

Android应用上的Oauth 2

所以我需要能够在我的Android应用程序上使用Oauth作为登录部分(不适用于Twitter,谷歌等…)这是一个私人应用程序。 应用程序的其余部分使用具有经过身份validation的令牌的rest服务。 这里基本上我正在寻找任何提示,图书馆或文章推荐。 我发现的大多数文章都是关于如何登录Google的服务等。 谢谢,

在node.js服务器中validationGoogle授权的OAuth令牌的正确方法是什么?

我正在尝试将Android平台的移动应用程序validation为自定义node.js服务器api。 我想使用Google OAuth2令牌而不是推出自己的身份validation,因为安装了Google Play的Android设备可以让应用开发者使用它。 我正在使用此处记录的Google Play服务库中的GoogleAuthUtil.getToken调用。 我正在尝试遵循这个Android开发者博客post中提出的建议 在我的例子中, getToken方法返回一个长857字节的字符串。 如果我尝试将此令牌传递给Google的TokenInfo端点,则会返回: {‘error’:’invalid_token’,’error_description’:’无效值’} 我在这做错了什么? 在getToken调用的“范围”中,我发送: audience:server:client_id:**i_put_my_clientid_here** 。 我为“已安装的应用程序”生成了一个clientid。 使用此客户端ID,对getToken的调用根本不起作用。 当我为“服务帐户”生成客户端ID时,调用成功,但是如上所述,当传递给TokenInfo端点时,我得到一个857字节的令牌失败。 编辑:我还为“Web应用程序”创建了一个客户端ID,因为它似乎是调用getToken时使用的正确客户端ID。 但行为是一样的,我得到一个857字节的令牌,在调用谷歌的终端时不会validation。 如何在Android上使用Google Play服务正确获取有效的身份validation令牌? 一旦我有了正确的令牌,什么是正确的node.js库来validation服务器端? 我可以使用passport-google-oauth吗?

使用Android帐户管理器validation在我的服务器上使用FB登录的用户

我对使用Android帐户管理器进行身份validation有疑问。 我们有一个后端和一个Android应用程序,用户应该使用他的Facebook帐户登录我们的后端。 目前我们为此目的展示了一个webview,它可以正常运行oAuth 2,但使用Android帐户管理器对用户来说更安全,更容易,因此我们想切换。 我的问题是,服务器如何validation用户是否真的是他假装的人。 由于我们无法信任App,因此我们必须从服务器端与fb交谈,以validation用户是否真的是他假装的人。 基于一个非常相似的想法,我做了下面的图表,问你这是否是正确的方法,或者我错过了什么: 流程看起来像这样: 用户想要使用他的Facebook帐户登录 显示Android客户经理,他选择了Facebook帐户 用户授予允许“我的应用”访问其fb数据的访问权限 Android客户经理从Facebook服务器获取身份validation令牌 “我的应用程序”现在具有身份validation令牌,可以访问用户的fb数据 “我的应用程序”将tokten传递给“我的服务器” “我的服务器”现在通过从fb服务器获取用户数据来检查令牌是否有效 如果令牌有效,“我的服务器”会使用“我的应用程序”为当前会话返回正常的临时有效cookie。 用户现在使用他的fb帐户登录My Server。 这是正确的方法吗? 步骤6是一个好主意,将令牌传递给“我的服务器”还是有更好的方法? 顺便说一句Facebook就是这里的一个例子,我们使用不同的身份validation提供商,如FB,谷歌和Twitter,但每个人的流量应该是相同的。

用于在Android上生成HMAC-SHA1 OAuth签名的库?

使用下面的规范 ,我需要在Android上创建oauth_signature。 我正在寻找一个处理锅炉板代码的库,用于创建通过OAuth访问资源的签名。 构造一个签名“基本字符串”,它由三个请求元素的串联组成: HTTP请求方法。 请求发送到的基本URL。 此URL不应包含任何查询参数。 在签署对Google服务的调用时,请参阅OAuth规范第9.1.2节,了解相关说明。 请求中参数的标准化字符串(不包括oauth_signature参数)。 这包括请求标头或正文中发送的参数,以及添加到请求URL的查询参数。 要规范化字符串,请使用词典字节值排序对参数进行排序。 有关规范化此字符串的更多详细信息,请参阅OAuth规范的第9.1.1节。 使用以下序列之一生成oauth_signature: 如果您的应用程序已注册且您正在使用HMAC-SHA1,请使用注册期间生成的OAuth“consumer secret”值; 此值显示在您域的注册页面上。

如何使用OAuth 2.0从Indy发送Gmail?

以下代码使用Google的Gmail服务器成功发送电子邮件,但只有在将Google帐户安全设置降低为“允许安全性较低的应用程序”之后。 下面提供的代码(最初来自Remy LeBeau)没有包含OAuth 2.0,如果您不想让您的用户做出看似艰难的决定来降低其安全设置以允许您的应用程序成功,则需要使用该代码。 如何将OAuth 2.0纳入Indy解决方案以满足Google更高的安全标准? 工作方案: function TTabbedwithNavigationForm.SendEmailNow(FromStr, ToStr, Subject, MessageBody, Host: String; Port: Integer; UserName, Pass: String): Boolean; begin ///From Remy LeBeau Indy SMTP with SSL via gmail host Result := False; try IdMessage1 := nil; IdSSLIOHandlerSocketOpenSSL1 := nil; IdSMTP1 := nil; try //setup mail message try IdMessage1 := TIdMessage.Create(nil); IdMessage1.From.Address := FromStr;//// […]

如何在android中安全地保存Oauth Access令牌

我在身份validation后可以通过服务器访问令牌”uyhjjfjfgg567f8fhjkkf”现在我想将它安全地保存在设备中。 我查看了android开发者网站中的Keystore和Keychain。 我不清楚它是如何工作的以及我们应该如何从密钥库中检索令牌。 KeyPairGenerator kpg = KeyPairGenerator.getInstance( KeyProperties.KEY_ALGORITHM_EC, “AndroidKeyStore”); kpg.initialize(new KeyGenParameterSpec.Builder( alias, KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY) .setDigests(KeyProperties.DIGEST_SHA256, KeyProperties.DIGEST_SHA512) .build()); KeyPair kp = kpg.generateKeyPair(); /* * Load the Android KeyStore instance using the the * “AndroidKeyStore” provider to list out what entries are * currently stored. */ KeyStore ks = KeyStore.getInstance(“AndroidKeyStore”); ks.load(null); Enumeration aliases = ks.aliases();

Android身份validation错误:“GetToken失败,状态代码为:INVALID_AUDIENCE”

关于这个模糊的错误代码已经有几个问题,但是没有人为我解决这个问题,所以我会再试一次。 首先,这是用于登录的样板代码。 GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .requestServerAuthCode(“web app client ID copied from Dev API Console”, false) .build(); mGoogleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this, this).addApi(Auth .GOOGLE_SIGN_IN_API, gso).build(); Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); startActivityForResult(signInIntent, RC_SIGN_IN); 使用此代码,我得到一个对话框,可以选择适当的用户帐户。 好极了! 但是,然后我在onActivityResult中获取了一个已取消的代码,因此我检查了logcat并注意了标题中的错误消息。 然后我搜索有这个问题的其他人,但是无法弄清楚我的问题是什么。 所以让我们从其他post中查看常见问题。 Firebase控制台显示我的应用程序已使用正确的SHA-1和SHA-256指纹进行了注册 发布和调试版本都使用相同的密钥库 在Google API管理器中,我的“OAuth许可屏幕”已配置完毕 我还validation了授权重定向URI的域名 我已经重新下载了Firebase GoogleServices.json文件,只是为了确定 没有包名称问题。 实际上,Firebase Analytics在这个应用程序中运行得很好 在Play商店开发控制台中,我的OAuth客户端显示在“设置 – > API访问”中 我的Firebase项目在Play商店开发控制台“关联帐户”设置部分中链接 我等了10个小时,只是为了看看Google的后端是否需要时间来设置它 对于可搜索性,在标题中的logcat错误消息之后,我得到以下logcat打印。 你有错误的OAuth2相关配置,请检查。 […]

我可以使用Android的AccountManager获取AppEngine的OAuth访问令牌吗?

我的AppEngine服务器上有Android客户端,都使用Google帐户。 我想使用AccountManager获取OAuth的accessToken 。 到目前为止,我正在使用ClientLogin,但我想切换到OAuth。 在AppEngine上设置OAuth很简单 – 我遵循了这篇文章 。 但客户端是一个谜,特别是我不知道用于范围的内容,在AccountManager术语authTokenType中 。 对于ClientLogin,我使用“ah”表示authTokenType 。 但OAuth呢?