| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import AsyncStorage from '@react-native-async-storage/async-storage';
- import { batchActions } from 'redux-batched-actions';
- import { authLoaded, setRefreshToken, setToken, setUsername } from './actions'
-
- // AsyncStorage.getAllKeys()
- // .then((keys) => AsyncStorage.multiGet(keys)
- // .then((data) => console.log(data)));
-
- async function safeSetStorage(key, value) {
- if (value) {
- await AsyncStorage.setItem(key, value)
- }
- else {
- await AsyncStorage.removeItem(key)
- }
- }
-
- const accessTokenKey = 'userToken'
- const refreshTokenKey = 'refreshToken'
- const userNameKey = 'userName'
-
- function subscibeOnAuthChanges(store) {
- let lastAccessToken = store.getState().user.token;
- let lastRefreshToken = store.getState().user.refreshToken;
- let lastUsername = store.getState().user.username;
- // console.log("In subscribe function", lastAccessToken, lastRefreshToken, lastUsername)
-
- store.subscribe(async () => {
- const state = store.getState();
- // console.log("In subscribe...")
- const newAccessToken = state.user.token;
- const newRefreshToken = state.user.refreshToken;
- const newUsername = state.user.username;
- // console.log("In subscribe", newAccessToken, newRefreshToken, newUsername)
-
- if (lastAccessToken !== newAccessToken) {
- lastAccessToken = newAccessToken
- await safeSetStorage(accessTokenKey, newAccessToken)
- }
-
- if (lastRefreshToken !== newRefreshToken) {
- lastRefreshToken = newRefreshToken
- await safeSetStorage(refreshTokenKey, newRefreshToken)
- }
-
- if (lastUsername !== newUsername) {
- lastUsername = newUsername
- await safeSetStorage(userNameKey, newUsername)
- }
- })
- }
-
- async function loadFromStorage(store) {
- try {
- // leave comments this for testing
- // console.log("getting Token from storage");
- // await AsyncStorage.setItem(accessTokenKey, "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI4MmVlNjNkMi0yZDRjLTRkZjQtYTQ0MS1hZWRkZjhiNGEwMmYiLCJzdWIiOiJpbGlqYSt1Y2lAcHJvZml0b3B0aWNzLmNvbSIsInVuaXF1ZV9uYW1lIjoiaWxpamErdWNpQHByb2ZpdG9wdGljcy5jb20iLCJVdGNPZmZzZXRNaW51dGVzIjoiLTI0MCIsIkFncmVlbWVudEFjY2VwdGVkIjoiVHJ1ZSIsIk9yZ2FuaXphdGlvbklkIjoiMTkiLCJPcmdhbml6YXRpb25Ib3N0bmFtZSI6Im15c3RyYXRhZGV2Mi5wcm9maXRvcHRpY3MuY29tIiwibmJmIjoxNjE2Njk0NTI2LCJleHAiOjE2MTY2OTYzMjYsImlzcyI6InN0cmF0YWNsZWFyLmNvbSIsImF1ZCI6IkNsaWVudCJ9.kk0TQENidNJfQpkLy6uVUZULHp1r46gA7IyhAMHkqsI");
- userToken = await AsyncStorage.getItem(accessTokenKey);
- // leave this for testing
- // await AsyncStorage.setItem(refreshTokenKey, "IBFRYNvviwI0+C3CVy1sViQlvFDTXsTUZWa8fgzv6oLQtYTng3A+8xc4gMqpX+y1lR8WIhN4uDlEV19uu+prWEVpi8qkjp999Li0t+eiEoe7OdeK+vQwecowvvJZRt1WK/Qb3biMC76IhElZta/riy2yZ9jQRBhiEfPs+yK+GJI=");
- // await AsyncStorage.setItem(refreshTokenKey, "TV+VsT+Qwb9hh1oi8mG4CBX0gnN9y9aNfXT/QUPZsPwCJ3n1svOO/KwT14Z5UZxhU+8h5ocuvipj4dIGDJa7wJHkV7j5/mBKfSgVqMvX43VdFXkp19Dg0h4Tg9Elh6GpR0N6FSCDJl3igv83W3OpC4UWXylQKW+0gr+tjOPmT78=");
- refreshToken = await AsyncStorage.getItem(refreshTokenKey);
- // leave this for testing
- // await AsyncStorage.setItem(userNameKey, "ilija+uci@profitoptics.com");
- userName = await AsyncStorage.getItem(userNameKey);
-
- // console.log('Loaded from storage', userToken)
- store.dispatch(batchActions([setToken(userToken), setRefreshToken(refreshToken), setUsername(userName), authLoaded()]))
- } catch (eror) {
- console.error("There was an error getting token from storage", eror);
- }
- }
-
- function init(store) {
- loadFromStorage(store)
- .then(() => subscibeOnAuthChanges(store))
- }
-
- export { init };
|