Auth - ob-vss-ss18/ppl-core GitHub Wiki

Jede Anfrage im System enthält ein User-Object über diesen die Gültigkeit der Anfrage überprüft werden kann. Der Auth-Service verwaltet diese Token sowie die Zugangsberechtigungen für Angestellte und Kunden.

  • Kunden können über ihre Email-Adresse ein PasswordlessLogin-Token anfragen. Den bekommen sie per Email zugesandt und ist 30 min lang gültig.
  • Mitarbeiter loggen sich mit ihrer Email-Adresse und ihrem Password ein. Diese Token laufen nicht ab, können jedoch durch erneuten Login ungültig gesetzt werden.
  • Die Query user stellt einen Gültigkeitscheck dar: Ist der übergebene User so in der Datenbank enthalten und ist der Token gültig wird der User zurückgegeben, ansonsten wird ein Error zurückgegeben.
type User {
  uid: ID!
  email: String!
  role: UserRole!
  token: String
}

enum UserRole {
  OWNER
  STAFF
  CUSTOMER
}

type Query {
  user(user: User): User
}

type Mutation {
  requestToken(email: String!): Boolean
  loginPwd(email: String!, password: String!): User
  loginToken(email: String!, token: String): User
}