84 lines
3.3 KiB
TeX
84 lines
3.3 KiB
TeX
\section{Produktdaten}
|
|
|
|
Das Projekt erhebt an unterschiedlichen Stellen Daten des Benutzers oder anderen
|
|
Plattformen. Diese Daten können temporär gespeichert werden. Dabei bleiben die
|
|
Daten nur für eine kurze Zeit gespeichert, zum Beispiel so lange wie der Nutzer
|
|
eingeloggt ist. Andere Daten können auch persistent gespeichert werden. Dabei
|
|
bleiben die Daten solange gespeichert, bis sie manuell oder durch
|
|
\Gls{garbage-collection} gelöscht werden.
|
|
|
|
\subsection{Weboberfläche}
|
|
|
|
Die Weboberfläche bezieht direkt Daten vom Benutzer. Die Weboberfläche erhält
|
|
E-Mail-Adresse und Passwort vom Benutzer, speichert diese aber nur solange, bis
|
|
diese an das Backend zur Validierung geschickt werden. Daraufhin erhält die
|
|
Weboberfläche einen \Gls{session-token} welcher entweder persistent oder temporär als
|
|
\Gls{cookie} gespeichert bleibt, je nachdem, ob der Nutzer angemeldet bleiben möchte.
|
|
|
|
Zusätzlich erhält die Weboberfläche die abonnierten \Glspl{podcast} und gehörten
|
|
\Glspl{episode} inklusive Metadaten vom Backend. Diese Daten werden nur temporär,
|
|
solange die Webseite offen ist, gespeichert.
|
|
|
|
\subsubsection*{Persistent}
|
|
|
|
\begin{itemize}
|
|
\item \Gls{session-token} (falls der Nutzer angemeldet bleiben möchte)
|
|
\end{itemize}
|
|
|
|
\subsubsection*{Temporär}
|
|
|
|
\begin{itemize}
|
|
\item Abonnierte \Glspl{podcast}
|
|
\item Gehörte \Glspl{episode}
|
|
\item \Gls{session-token}
|
|
\end{itemize}
|
|
|
|
\subsection{Backend}
|
|
|
|
Das Backend interagiert nicht direkt mit dem Benutzer, sondern bekommt Daten von
|
|
der Weboberfläche und \Glspl{podcatcher}. Wenn sich ein Nutzer über die Weboberfläche
|
|
oder im \Gls{podcatcher} anmeldet oder registriert speichert der Server temporär die E-Mail-Adresse und
|
|
das Passwort des Nutzers im Klartext, bevor es die Daten gegen die gehashten und
|
|
gesalzenen persistenten Daten der \Gls{db} abgleicht beziehungsweise speichert.
|
|
|
|
Außerdem speichert das Backend abonnierte \Glspl{podcast} und gehörte
|
|
\Glspl{episode}, welche
|
|
es vom \Gls{podcatcher} bekommt, im persistenten Speicher. Diese Daten bleiben
|
|
gespeichert bis sie durch neue Daten obsolet werden (\Gls{garbage-collection}),
|
|
vom Nutzer manuell gelöscht werden oder der Account gelöscht wird.
|
|
|
|
Wenn die Weboberfläche \Glspl{episode} über \Glspl{podcast} abfragt, welche noch nicht vom
|
|
Nutzer gehört wurden, holt der Server Metadaten über den \Glspl{podcast} und speichert
|
|
Informationen und Bilder des \Glspl{podcast} temporär, solange der Nutzer die
|
|
Weboberfläche geöffnet hat.
|
|
|
|
\subsubsection*{Persistent}
|
|
\begin{itemize}
|
|
% Email (gehasht und gesalzen) / Betreuer fragen weil evtl Mails gesendet werden
|
|
% müssen, falls Datenschutzbedinungen geändert werden
|
|
\item E-Mail-Adresse gehasht und gesalzen
|
|
\item Passwort gehasht und gesalzen
|
|
\item Abonnierte \Glspl{podcast}
|
|
\item Gehörte \Glspl{episode} (Hörfortschritte)
|
|
\end{itemize}
|
|
|
|
\subsubsection*{Temporär}
|
|
\begin{itemize}
|
|
\item Metadaten von Feeds (\Glspl{episode}, Bilder)
|
|
\end{itemize}
|
|
|
|
\subsection{Podcatcher}
|
|
|
|
Der \Gls{podcatcher} speichert die E-Mail-Adresse, das Passwort und die URL der
|
|
Gpodder-Instanz im persistenten Speicher. Zusätzlich speichert der
|
|
\Gls{podcatcher}
|
|
abonnierte \Glspl{podcast} und gehörte \Glspl{episode} im persistenten Speicher.
|
|
|
|
\subsubsection*{Persistent}
|
|
\begin{itemize}
|
|
\item E-Mail-Adresse, Passwort und URL der Gpodder-Instanz
|
|
\item Abonnierte \Glspl{podcast}
|
|
\item Gehörte \Glspl{episode}
|
|
\end{itemize}
|
|
|