在后端服务器上存储 Google+ 个好友列表
Store Google+ friends list on backend server
我已经在我的 Android 应用程序中集成了 Google+ 登录。现在我不想获取用户的好友列表并将其存储在服务器上。我无法在客户端应用程序上获取好友列表并将其发送到服务器,因为数据很容易被篡改。所以我考虑使用以下代码生成一个访问令牌并将其发送到服务器,然后服务器将使用它来查询 Google+ API 并获取用户的朋友。
String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
Account account = new Account(accountName, GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
String scope = "oauth2:" + Constants.SCOPE_PLUS_LOGIN + " " + Constants.SCOPE_EMAIL;
try {
String accessToken = GoogleAuthUtil.getToken(getApplicationContext(), account, scope);
} catch (IOException | GoogleAuthException e) {
e.printStackTrace();
}
但是直接使用 https 将访问令牌发送到服务器是否足够安全?因为如果令牌被泄露,那么任何第三方都可以使用它来窃取用户的个人信息。
或者有没有更好的方法来获取和存储登录用户的好友列表到服务器上?
1) 始终通过 HTTPS 传输 access_tokens。
2) 不要构建任何从您的服务器获取 access_tokens 的方法。确保服务器只支持发送 access_tokens 给它。
3) access_tokens 一小时后过期,因此 window 滥用是有限的。
我已经在我的 Android 应用程序中集成了 Google+ 登录。现在我不想获取用户的好友列表并将其存储在服务器上。我无法在客户端应用程序上获取好友列表并将其发送到服务器,因为数据很容易被篡改。所以我考虑使用以下代码生成一个访问令牌并将其发送到服务器,然后服务器将使用它来查询 Google+ API 并获取用户的朋友。
String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
Account account = new Account(accountName, GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
String scope = "oauth2:" + Constants.SCOPE_PLUS_LOGIN + " " + Constants.SCOPE_EMAIL;
try {
String accessToken = GoogleAuthUtil.getToken(getApplicationContext(), account, scope);
} catch (IOException | GoogleAuthException e) {
e.printStackTrace();
}
但是直接使用 https 将访问令牌发送到服务器是否足够安全?因为如果令牌被泄露,那么任何第三方都可以使用它来窃取用户的个人信息。
或者有没有更好的方法来获取和存储登录用户的好友列表到服务器上?
1) 始终通过 HTTPS 传输 access_tokens。
2) 不要构建任何从您的服务器获取 access_tokens 的方法。确保服务器只支持发送 access_tokens 给它。
3) access_tokens 一小时后过期,因此 window 滥用是有限的。