/// <summary> /// Issues a new token for given user. /// </summary> /// <param name="user">User to issue token for.</param> /// <returns>The issued token and its expiration time.</returns> public JwtTokenModel IssueToken(UserPreview user) { var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, user.Id), new Claim(JwtRegisteredClaimNames.NameId, user.Username) }; var expires = DateTime.UtcNow.AddHours(2); var token = new JwtSecurityToken( this.Configuration.TokenIssuer, this.Configuration.TokenIssuer, claims, expires: expires, signingCredentials: this.Credentials); return(new JwtTokenModel { Token = new JwtSecurityTokenHandler().WriteToken(token), ExpiresAt = expires }); }
/// <summary> /// Gets a session from a principal and updates the token. /// </summary> /// <param name="user">User to encapsulate session for.</param> /// <param name="token">Token to send along.</param> /// <param name="expiresAt">The timestamp at which the token expires.</param> /// <param name="requireMfa">A value indicating whether the current user requires MFA.</param> /// <returns>Encapsulated session.</returns> public SessionPreview GetSession(UserPreview user, string token, DateTimeOffset expiresAt, bool requireMfa) => new SessionPreview(user, token, expiresAt, requireMfa);
/// <summary> /// Gets a session from a principal. /// </summary> /// <param name="user">User to encapsulate session for.</param> /// <returns>Encapsulated session.</returns> public SessionPreview GetSession(UserPreview user) => new SessionPreview(user);
internal UserInfoWithPreview(PixivClient client, UserPreview api) : base(client, api.User) => PreviewIllusts = api.Illusts.Select(x => new Illust(client, x)).ToArray();