public DTO.Tokens.SignedIn OnSignedIn(DTO.Databases.User User, bool AdminMode = false) { // genrate new token here var SignInData = new DTO.Tokens.SignedIn { UserId = User.Id, Email = User.Email, FullName = User.Fullname }; var Token = new DTO.Tokens.JWT(Sekrit.Value.TTL) { sub = User.Id, aud = (AdminMode) ? "Administrator" : "Default" }; SignInData.Token = Sekrit.Value.Encode(Token); var Session = new DTO.Databases.Token { TokenId = Token.jti, UserId = User.Id, Owner = User.Id }; TokenRepo.Save(Session); return(SignInData); }
public string Encode(DTO.Tokens.JWT payload = null) { IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); IJsonSerializer serializer = new JsonNetSerializer(); IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder(); IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder); return(encoder.Encode(payload, Secret)); }