Skip to content

Commit

Permalink
Added TTL to local storage
Browse files Browse the repository at this point in the history
  • Loading branch information
strobosco committed Nov 2, 2021
1 parent ed8e6d7 commit 480acd9
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 11 deletions.
3 changes: 3 additions & 0 deletions frontend/components/Footer.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ const Footer = () => {
<h2>Connect with us!</h2>
<p>
Reach out to us with any questions, concerns, or suggestions!
<br />
Also read about what we're working on and what updates are
coming!
</p>
</div>
<IconButton
Expand Down
31 changes: 25 additions & 6 deletions frontend/components/InputGrid.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,18 @@ const InputGrid = ({ setPlaylists, setRootName, setUris }) => {
];

useEffect(async () => {
if (localStorage.getItem("accessToken")) {
setToken(localStorage.getItem("accessToken"));
const data = localStorage.getItem("accessToken");
if (data) {
const item = JSON.parse(data);
if (Date.now() > item.ttl) {
localStorage.removeItem("accessToken");
} else {
setToken(item.value);
}
}
// if (localStorage.getItem("accessToken")) {
// setToken(localStorage.getItem("accessToken"));
// }
}, []);

const createSongs = async () => {
Expand Down Expand Up @@ -75,9 +84,9 @@ const InputGrid = ({ setPlaylists, setRootName, setUris }) => {
numberOfPlaylists: "",
baseName: "",
parameters: [],
toggle: false,
}}
onSubmit={async (values, actions) => {
console.log(values.parameters);
setRootName(values.baseName);
results = [];
let userSelectedPlaylists = [];
Expand All @@ -99,12 +108,12 @@ const InputGrid = ({ setPlaylists, setRootName, setUris }) => {
accessToken: token,
selectedPlaylists: JSON.stringify(userSelectedPlaylists),
userNumberOfPlaylists: values.numberOfPlaylists,
categories: values.parameters,
categories: values.toggle
? completeParameters
: values.parameters,
},
});
// console.log(res);
results.push(res.data);
// console.log(results[0].playlists);
await createSongs();
actions.setSubmitting(false);
}}
Expand Down Expand Up @@ -159,7 +168,17 @@ const InputGrid = ({ setPlaylists, setRootName, setUris }) => {
</FormControl>
)}
</Field>
<label>Select at least one feature:</label>
<div className="parameter-div">
<label key="toggle-label" className="label">
<Field
type="checkbox"
name="toggle"
className="parameter-input"
/>
All features
</label>
<br />
{completeParameters?.map((item, idx) => (
<label key={`${idx}_label`} className="label">
<Field
Expand Down
22 changes: 19 additions & 3 deletions frontend/components/SongsButton.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,27 @@ const SongsButton = ({
const [tokenError, setTokenError] = useState("");

useEffect(() => {
if (localStorage.getItem("accessToken")) {
setToken(localStorage.getItem("accessToken"));
} else {
const data = localStorage.getItem("accessToken");
if (!data) {
// if no value exists associated with the key, return null
setTokenError("Please login before continuing!");
} else {
const item = JSON.parse(data);

// If TTL has expired, remove the item from localStorage and return null
if (Date.now() > item.ttl) {
localStorage.removeItem("accessToken");
setTokenError("Token expired, sign in again!");
} else {
setToken(item.value);
}
}

// if (localStorage.getItem("accessToken")) {
// setToken(localStorage.getItem("accessToken"));
// } else {
// setTokenError("Please login before continuing!");
// }
}, []);

const handleGetPlaylists = async () => {
Expand Down
10 changes: 8 additions & 2 deletions frontend/components/SongsList.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,14 @@ import createPlaylists from "../utils/CreatePlaylists";
const SongsList = ({ songs, rootName, uris }) => {
const [token, setToken] = useState("");
useEffect(async () => {
if (localStorage.getItem("accessToken")) {
setToken(localStorage.getItem("accessToken"));
const data = localStorage.getItem("accessToken");
if (data) {
const item = JSON.parse(data);
if (Date.now() > item.ttl) {
localStorage.removeItem("accessToken");
} else {
setToken(item.value);
}
}
}, []);

Expand Down

0 comments on commit 480acd9

Please sign in to comment.