Tôi đang cố gắng tìm hiểu về Android AccountManager và OAuth. Những gì tôi muốn làm là không cho phép điện thoại có quyền truy cập vào mật khẩu. (Đó là những gì Google đề xuất: "Be Smart About Security!") Vì vậy, tôi thanh toán đơn đăng ký mẫu Google SampleSyncAdapter và bắt đầu đọc qua mã. thì tôi thấy điều này xảy ra trong AuthenticatorActivity:SampleSyncAdapter lưu trữ mật khẩu thuần văn bản?
private AccountManager mAccountManager;
private String mPassword;
/**
* ... Sets the
* AccountAuthenticatorResult which is sent back to the caller. We store the
* authToken that's returned from the server as the 'password' for this
* account - so we're never storing the user's actual password locally.
*
* @param result the confirmCredentials result.
*/
public void handleLogin(View view) {
....
mPassword = mPasswordEdit.getText().toString();
....
Log.d(TAG, "mPassword set to Account:" + mAccountManager.getPassword(account));
}
private void finishLogin(String authToken) {
....
mAccountManager.addAccountExplicitly(account, mPassword, null);
....
}
Thông điệp tường trình này được "mPassword được đặt thành Tài khoản: kiểm tra". Đây là một cách nào đó có thể hiểu được khi bạn đọc phần còn lại vì điều này
protected String doInBackground(Void... params) {
....
return NetworkUtilities.authenticate(mUsername, mPassword);
....
}
nếu mật khẩu là một dấu hiệu này sẽ không hoạt động. Ngoài ra tôi sẽ mong đợi phần còn lại của mã để làm việc khác nhau trong Authenticator trên getAuthToken() Tôi giả sử tôi hoàn toàn sai về một cái gì đó nhưng tôi chỉ muốn sử dụng AccountManager để lưu trữ kết quả của một OAuth "Dance" để tôi có thể sử dụng Tài khoản này để xác thực dịch vụ JSON RESTful của mình.
Ai có thể chiếu sáng điều này không?
Điều gì xảy ra nếu mã thông báo không hợp lệ sau một khoảng thời gian nhất định? Tôi đoán bạn chỉ cần nhắc lại người dùng về mật khẩu của họ trong trường hợp đó. Nhưng nhiều dịch vụ (ví dụ Facebook) không bao giờ nhắc tôi mật khẩu, vì vậy 1) mã thông báo họ tạo không bao giờ hết hạn, làm cho nó cơ bản tốt như mật khẩu về bảo mật hoặc 2) họ đang lưu trữ mật khẩu của tôi (văn bản thuần túy hoặc được mã hóa). –