Articles of 身份validation

Android – Retrofit 2 – 身份validation器结果

我正在尝试使用Retrofit(2.0.0-beta3),但是当使用Authenticator添加令牌时,我似乎无法从同步调用中获取数据。 我们在后端的日志记录只显示了很多登录尝试,但我无法从正文中获取实际添加到标题的数据。 public static class TokenAuthenticator implements Authenticator { @Override public Request authenticate(Route route, Response response) throws IOException { // Refresh your access_token using a synchronous api request UserService userService = createService(UserService.class); Call call = userService.emailLogin(new Credentials(“handle”, “pass”)); // This call is made correctly, as it shows up on the back-end. Session body = call.execute().body(); […]

使用Android的证书进行SSL客户端身份validation

我正在编写一个连接到服务器以调用某些Web服务的Android应用程序。 此服务器使用SSL的自签名证书,并且需要客户端证书进行身份validation。 当我使用Android Chrome浏览器或使用Iphone的safari浏览器连接到服务器时,它可以完美运行。 SSL连接正在建立,客户端证书身份validation正在成功并重定向到我的Webservices。 但是当我连接其他浏览器时,比如股票android浏览器,海豚等,它会导致网络超时。 此外,当我连接我的Android应用程序时,我收到以下错误: javax.net.ssl.SSLException: Read error: ssl=0x12746b8: I/O error during system call, Connection reset by peer at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_read(Native Method) at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:671) at libcore.io.Streams.readSingleByte(Streams.java:41) at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:655) at libcore.io.Streams.readAsciiLine(Streams.java:201) at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:544) 我关注了chariotsolutions的博客: http : //chariotsolutions.com/blog/post/https-with-client-certificates-on/ 我还使用portecle GUI将客户端证书转换为BKS格式。 这是我的代码: private static final String USER_AGENT = “Mozilla/5.0 (Linux; U; Android 4.0.3; et-ee; GT-P5100 Build/IML74K) AppleWebKit/534.30 […]

Google oauth2使用从Android生成的一次性代码,但不适用于从JS SDK生成的代码

我正在尝试使用Google的oauth2 api对用户进行身份validation。 有两个平台,Android和Web。 对于新用户,我在客户端上获取一次性身份validation代码并将其发送到两个平台上的服务器。 一旦服务器收到代码,它就会获取访问令牌,然后是用户详细信息。 服务器能够从Android设备发送的一次性身份validation代码中获取令牌,但是从Web发送的代码失败了。 这是我在JS中用于获取一次性身份validation代码的代码片段。 gauth2.grantOfflineAccess({ ‘scope’: ‘profile email’, ‘redirect_uri’: ‘postmessage’ }).then(function(e){ if(!e){ // Error } else{ console.log(‘Auth code: ‘+e.code); } }); 在服务器端,这是我要从一次性代码中获取令牌的POST请求。 post_data = {‘code’: one_time_code, ‘client_id’: settings.GOOGLE_OAUTH2_CLIENT_ID, ‘client_secret’: settings.GOOGLE_OAUTH2_CLIENT_SECRET, ‘grant_type’: ‘authorization_code’} req = urllib2.Request(“https://www.googleapis.com/oauth2/v3/token”, data=urllib.urlencode(post_data), headers={‘User-Agent’: ‘Mozilla/5.0’}) req.get_method = lambda: ‘POST’ res = urllib2.urlopen(req) if res.code == 200: print “response 200 […]

使用后端服务器的Google身份validation需要范围

我按照这些说明 ( https://developers.google.com/identity/sign-in/android/backend-auth )获取ID令牌以发送到我的后端,但是当我设置String scopes = “audience:server:client_id:” + Service.SERVER_CLIENT_ID; (是SERVER_CLIENT_ID不是Android客户端ID)我无法获得令牌并抛出此错误。 E/Login: com.google.android.gms.auth.GoogleAuthException: Unknown 但是,当我使用以下范围而不是String scopes = “oauth2:profile email”; 我成功获得了’一个’令牌,但它没有我预期的那么长,我担心这可能是错的。 我的问题是…… 1)为什么scopes = “audience:server:client_id:” + SERVER_CLIENT_ID; 用于指导工作? 2)我使用String scopes = “oauth2:profile email”;得到的令牌String scopes = “oauth2:profile email”; 用于在后端validation用户的安全方法? 代码如下。 @Override protected String doInBackground(Void… params) { String accountName = Plus.AccountApi.getAccountName(googleApiClient); Account account = new Account(accountName, GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE); //String scopes […]

如何设计用于移动应用程序的web api?

我们正在构建移动应用程序,特别是Android应用程序,它需要连接到服务器才能获取数据。 它不像twitter,我们不需要暴露某种公共api。 我们只需要保持简单和安全,因为用户将与服务器交换一些私人数据。 我的问题主要是认证。 我们的服务器将有一个用户数据库。 如何在我的移动应用程序中注册和登录? 应该在服务器端和客户端实现什么样的机制。 登录后如何保持会话? 如果我需要让用户在下次打开应用程序时无需输入用户名/密码即可登录,我该怎么办? 我只是认为将他的密码存储在移动客户端并不是一个好主意。

Google登录后端服务器身份validation

我正在编写一个用于语音聊天的Android应用程序,并决定使用Google Sign-In对我的后端服务器进行简单的用户身份validation。 但是,我不明白应用程序应该如何通过我的后端进行身份validation。 当用户使用他的Google帐户登录并且我收到ID令牌时,我可以将ID令牌发送到服务器,然后服务器validation它。 那是什么呢? 如何validation以下请求,例如当用户发送/接收语音邮件并且应用程序需要向/从服务器上传/下载邮件时? 服务器需要知道哪个用户正在发出请求,但ID令牌是不合适的,因为它很快就会过期,其完整性validation是一个复杂且相对较长的过程。

如何在App Engine后端validationAndroid ID令牌

我的目标是为我的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这个令牌。 所以我使用谷歌插件为eclpise创建了新的Web应用程序项目。 它会生成一些示例项目。 对于这个项目,我从上面提到的文章中添加了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 […]

移动应用:如何在不离开我的应用的情况下显示我的应用在popup窗口中发送的OTP?

我们必须编写基于OTP的身份validation代码。 我看过一些应用程序,比如我的银行应用程序,当它发送OTP时,它会立即快速popup刚刚到达的短信,这样我就可以在不离开应用程序的情况下看到OTP。 我只记住数字,关闭popup窗口,继续在该应用程序内登录。 他们是怎么做到的? 是否有一些我应该关注的iOS / Android规范,它允许我们类似地popupOTP而无需用户必须转到SMS屏幕,然后回到我们的应用程序? 谢谢! 编辑:我有非常有用的Android建议。 现在正在寻找这些建议的iOS变体。 了解iOS有更严格的沙盒限制,所以“听众”可能会更复杂?

org.json.JSONException:值<!DOCTYPEtypesjava.lang.String无法转换为JSONObject

在这里,我想使用API​​密钥显示JSON内容。 但我无法获得身份validation。 我在JsonObject中收到错误: org.json.JSONException: Value Authorization of type java.lang.String cannot be converted to JSONObject 在我的Android应用程序中,我只是传递API密钥和URL id以获取以下URL中的JSON响应。 我使用JSON数组显示JSON内容。 但如果我: public class AndroidAPiActivity extends Activity { /* * FlickrQuery = FlickrQuery_url * + FlickrQuery_per_page * + FlickrQuery_nojsoncallback * + FlickrQuery_format * + FlickrQuery_tag + q * + FlickrQuery_key + FlickrApiKey */ String FlickrQuery_url = “http://192.138.11.9/api/interests/”; String FlickrQuery_per_page […]

切换用户或重新通过Instagram进行身份validation

在Instagram文档之后,我能够对用户进行身份validation并轻松检索access_token 但是现在我想更改Instagram帐户,这是不可能的,因为浏览器会自动调用我的回调URL,因为我已经使用帐户登录(没有再次登录/授权表单) 解释这里发生的是validation/授权流程: 打开浏览器,要求用户进行日志记录和授权 用户填写表单并提交(当用户已登录时 ,将跳过此步骤!) 浏览器重定向到回调URL 您看到第2步被跳过,因此我们无法使用其他用户登录 Instagram是否有强制重新登录的参数?