Articles of oauth

如何在Cordova / Phonegap中使用Google Login API

我想在我的Phonegap应用程序中使用“Login with Google”。 我读了很多文章但却无法知道它是如何完成的。 提前致谢。 我尝试按照此URL使用oAuth2作为“已安装的应用程序”。 但随后应用用户必须手动复制代码并粘贴到我的应用中。 我正在使用built.io 联合登录 ,如果它相关。

HttpURLConnection.getResponseCode()在第二次调用时返回-1

当我正在使用的库(路标1.1-SNAPSHOT)时,我似乎在Android 1.5上遇到了一个特殊的问题,它连续两次连接到远程服务器。 第二个连接始终失败, HttpURLConnection.getResponseCode()为-1 这是一个暴露问题的测试用例: // BROKEN public void testDefaultOAuthConsumerAndroidBug() throws Exception { for (int i = 0; i = 0 ) ; // … in combination with this line causes responseCode -1 for i==1 when using api.tripit.com but not mail.google.com assertTrue(c.getResponseCode() > 0); } } 基本上,如果我签署请求然后使用整个输入流,则下一个请求将失败,结果代码为-1。 如果我只是从输入流中读取一个字符,似乎不会发生故障。 请注意,任何url都不会发生这种情况 – 只是特定的url,例如上面的url。 此外,如果我切换到使用HttpClient而不是HttpURLConnection,一切正常: // WORKS public […]

允许用户使用Google凭据访问您的应用的最佳方式

如果您有一个需要用户注册的Android应用程序,并且希望允许用户通过Google进行login,那么您将如何处理? 我想让Google+login脱离这里的讨论。 我们也没有使用用户凭据来访问Google API,我也不想额外访问Google+的社交function。 似乎有很多select: 使用OAuth2.0进行身份validation logging在Google OAUth2login页面 这并没有提到Android,但它(部分)基于OAuth2访问令牌,但更重要的是对JSON Web令牌id_token的validation。 这种对用户进行身份validation的方式还包括启动WebView以允许用户login到他们的Google帐户以及相当复杂的id_tokenvalidation。 使用OAuth2 / Google Play服务 Google Play服务中有一个示例,更多地关注授权。 它使用GoogleAuthUtil.getToken来检索access_token。 其中的一部分是肯定的authentication,因为对话状态“login到…”。 我是否正确地认为将OAuth2.0stream与access_token用作authentication机制是一种不好的做法? (将访问令牌存储为authentication令牌)。 支持Facebook / Twitterlogin 我问的原因是因为Twitter和Facebook推荐你实施“使用…login”身份validation过程 用Twitter实现login Facebookloginstream为Android 这似乎也完全基于OAuth访问令牌。 我没有意识到的任何其他选项允许您用他们的谷歌帐户authentication用户?

如何validationApp Engine后台的Android ID令牌

我的目标是build立简单的应用程序引擎后端为我的android应用程序。 这个后端的目的只是validationandroid客户端的调用,并提供密码,将用于进一步与我的服务器的https通信。 所以我开始根据这个http://android-developers.blogspot.in/2013/01/verifying-back-end-calls-from-android.html文章。 客户端看起来像: GoogleAuthUtil.getToken(MainActivityy.this, "my.email@gmail.com", "audience:server:client_id:my_Client_ID_for_web_applications.apps.googleusercontent.com"); 此方法返回令牌,如下所示: eyJhbGciOiJSUzI1NiIsImtpZCI6ImFiMWIyZTllNGU2NGE0MmIzM2U3YjMxMDQwNzUyMzIxYmVlMmJkYmEifQ.eyJpc.oN5ncz6MEAZBW8NXDhc4O-Y82C2mma675lbw9ZZA-1bs8zM9FKQG1K97PfNfxJFImiPMY8UYIjhqDIkHpErjaV0KDJpLv8NkmsdADOFjt5eQkFGWf92fufL7QEIkWqLL1fKxG7f8-OR59O5AOAVchdgtqDt4DhEH7oHfAZqf3wU 现在我想在后端validation这个令牌。 所以我创build了新的Web应用程序项目使用谷歌插件eclpise。 它生成一些示例项目。 对于这个项目,我从上面提到的文章中添加Checker类。 看起来像这样: import java.io.IOException; import java.security.GeneralSecurityException; import java.util.Arrays; import java.util.List; import java.util.logging.Logger; import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken; import com.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.gson.GsonFactory; public class Checker { private final List mClientIDs; private final String mAudience; private final GoogleIdTokenVerifier mVerifier; private final JsonFactory mJFactory; private […]

Android上的OAuth + Twitter:callback失败

我的Android应用程序使用Java OAuth库,在Twitter上find授权。 我能够得到一个请求令牌,授权令牌,并获得一个确认,但是当浏览器尝试callbackurl与我的应用程序重新连接时,它不使用我在代码中提供的URL,但使用我注册时提供的URL与Twitter。 注意: 1.在使用twitter注册我的应用程序时,我提供了一个假想的callbackurl: http : //abz.xyc.com ,并将应用程序types设置为浏览器。 2.我在我的代码“myapp”中提供了一个callbackurl,并为Browsable类别和数据scheme添加了一个intentfilter作为“myapp”。 3.授权时调用的URL包含te代码中指定的callbackurl。 任何想法我在这里做错了吗? 相关编码: public class FirstActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); OAuthAccessor client = defaultClient(); Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(client.consumer.serviceProvider.userAuthorizationURL + "?oauth_token=" + client.requestToken + "&oauth_callback=" + client.consumer.callbackURL)); startActivity(i); […]

如何在Android中获取http请求

我是新来的android.So我可以任何人向我如何使一个http获取请求,如 GET /photos?size=original&file=vacation.jpg HTTP/1.1 Host: photos.example.net:80 Authorization: OAuth realm="http://photos.example.net/photos", oauth_consumer_key="dpf43f3p2l4k3l03", oauth_token="nnch734d00sl2jdk", oauth_nonce="kllo9940pd9333jh", oauth_timestamp="1191242096", oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D" 在android(java)?

如何使用ClientID和ClientSecret在Phonegap内部使用AngularjsloginGoogle OAuth2

我正尝试通过Google OAuth2使用Angularjs(使用Ionic Framework)从Phonegap应用程序login。 目前我正在使用http://phonegap-tips.com/articles/google-api-oauth-with-phonegaps-inappbrowser.html进行login。但是,它创build了非常难看的代码,而且很难理解代码我正在使用Angular-UI-Router for Ionic。 这个问题似乎没有任何正确的答案螺旋。 我希望现在应该解决。 Google Angular Guys应该帮忙。 如何在电话中实施Google Auth? 最接近的主题是如何在Cordova / Phonegap中使用GoogleloginAPI ,但这不是angularjs的解决scheme。 我不得不使用下面的代码传递javascriptvariables值: var el = document.getElementById('test'); var scopeTest = angular.element(el).scope(); scopeTest.$apply(function(){ scopeTest.user = user; scopeTest.logged_in = true; scopeTest.name = user.name; scopeTest.email = user.email; });

GoogleSignInResult使用Firebase在Android应用中返回DEVELOPER_ERROR

所以我已经搞了几天了,我搞不明白为什么它不起作用。 我真的希望有人能帮助我。 我正在尝试使用Firebase对使用Googlelogin的用户进行身份validation。 因此,按照他们的指导,我已经设置Googlelogin以获取OAuth令牌,然后使用该令牌对Firebase进行身份validation。 所以我按照他们在这里指导的方式设置了Google,但是就我所知。 我从Google获得的OAuth令牌始终为空,结果代码为Status {statusCode = DEVELOPER_ERROR,resolution = null}。 到目前为止,我的活动如下所示: public static final int RC_GOOGLE_LOGIN = 1; private GoogleApiClient mGoogleApiClient; final Context context = this; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Firebase.setAndroidContext(this); GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .requestIdToken(this.getResources().getString(R.string.server_client_id)) .build(); mGoogleApiClient = new GoogleApiClient.Builder(this) .enableAutoManage(this, this) .addApi(Auth.GOOGLE_SIGN_IN_API, gso) .build(); SignInButton signInButton = […]

Chrome自定义标签redirect到Android应用将closures该应用

我正尝试使用Android Chrome自定义标签实现OAuth2stream程,但当Chrome自定义标签接收到302应用程序的位置/scheme时,我的应用程序始终是closures的(不会崩溃)。 如果我使用ahref链接创build了一个HTML页面,并手动触摸,Chrome自定义选项卡正确切换到我的应用程序。 似乎在处理服务器302redirect在Chrome自定义选项卡时,它不会正确处理我的自定义应用程序scheme…但为什么? 如果我在股票浏览器或WebView中尝试使用相同的redirecturl,则所有内容都可以正常工作。 这是我目前的设置: MainActiviy.java Button btnChromeCustomTab = (Button) findViewById(R.id.btnChromeCustomTab); btnChromeCustomTab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder().build(); String packageName = CustomTabsHelper.getPackageNameToUse(MainActivity.this); customTabsIntent.intent.setPackage(packageName); Uri theLocationUri = Uri.parse(URL); customTabsIntent.launchUrl(MainActivity.this, theLocationUri); } }); AndroidManifest.xml中 <activity android:name=".MainActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter android:label="@string/filter_title"> <action android:name="android.intent.action.VIEW" […]

如何使用GoogleAuthUtil.getToken与我的App Engine后端返回的令牌

我想做的事 我有一个简单的Google App Engine后台和一个简单的Android应用程序,我想从Android应用程序到服务器进行authentication的请求。 我阅读了关于Google Cloud Endpoints的内容,即使它是一个非常好的API,我觉得这对我想做的事情有点矫枉过正。 我只想做一个authentication的HTTP请求,并获得响应文本。 GET myappid.appspot.com/api/user 应该回答: Hello john.doe 如果用户john.doe@gmail.com发出请求。 后端方面: 我创build了一个新的App Engine项目: WEB_CLIENT_ID=123456789012.apps.googleusercontent.com 并注册了一个Android应用程序(“直接从Android访问API”): package name : com.myappid debug SHA1 fingerprint: 3a:e1:05:17:15:54:c6:c7:9b:ef:19:74:ae:5b:f7:0f:c3:d5:45:9d 这创造了 ANDROID_CLIENT_ID=123456789012-9f4sd525df3254s3d5s40s441df705sd.apps.googleusercontent.com 的app.yaml application: myappid version: 1 runtime: python27 api_version: 1 threadsafe: true handlers: – url: /api/.* secure: always script: api.APP libraries: – name: webapp2 version: latest – […]