2016-07-05 3 views
0

На самом деле мой вопрос очень похож на Single Sign-On in Android apps, но поскольку он не имеет ответов, я создаю новый в надежде найти ответ.Одиночный вход для 2 приложений

У меня есть 2 приложения под тем же доменом (com.example.appone и com.example.apptwo), которые используют одни и те же API-интерфейсы регистрации/входа в систему, но предоставляют разные функции. Как правило, в каждом приложении я храню связанную с сеансом информацию в своей собственной SQLite DB.

Что я хочу сделать, так это то, что я хочу разделить эту связанную с сеансом информацию между моими приложениями, чтобы, если пользователь входит в одно приложение, ему не нужно снова входить в систему во втором.

Я пробовал поиск в Интернете, но я мог найти только логины единого входа, предоставляемые Google, Facebook и другими сторонними поставщиками, которые я не хочу использовать.

Пожалуйста, предлагайте ребятам.

+0

Вы можете использовать ContentProvider для этого случая и можете совместно использовать данные базы данных. –

+0

@NigamPatro Да, я думал об этом, но разве это не угроза безопасности? – camelCaseCoder

+0

См. Ссылку https://developer.android.com/training/articles/security-tips.html и перейти к разделу ** Использование поставщиков контента ** и проверить это. Это будет полезно для вас, я думаю, –

ответ

-1

это очень просто вы можете использовать эти две функции для сохранения статуса Логин и регистрационные данные

public static void saveLoginStatus(Context context, boolean isLoggedIn) { 
 
     SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); 
 
     SharedPreferences.Editor ed = sp.edit(); 
 
     ed.putBoolean(PreferencesKeys.LOGIN_STATUS, isLoggedIn); 
 
     ed.commit(); 
 
    } 
 

 
    public static void saveUserData(Context context, UserDataClass userDataClass) { 
 
     SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); 
 
     SharedPreferences.Editor ed = sp.edit(); 
 
     ed.putString(PreferencesKeys.USER_DATA, new Gson().toJson(userDataClass)); 
 
     ed.commit(); 
 
    }

, чем на начало каждого приложения получить статус Войти, если пользователь уже войдите , автоматически войти с ним на втором приложении слишком

Примечание вы можете получить логин информацию с получением класса UserData, который вы сохранили. Все о логике, которую вы реализуете. для обеспечения безопасности вы можете реализовать надпись.

+2

Это не позволит мне читать «SharedPreferences» в другом приложении. Мне нужно установить режим 'Context.MODE_WORLD_READABLE', но тогда любое приложение сможет его прочитать. – camelCaseCoder

+0

обе базы данных одинаковы? –

+0

Да, они оба одинаковы. – camelCaseCoder

Смежные вопросы