private (bool IsSuccess, string Message) GenerateResetToken(Member member, MemberResetTokenType type) { string token = Guid.NewGuid().ToString(); if (type == MemberResetTokenType.Email) { member.Options.EmailToken = token; } else if (type == MemberResetTokenType.Password) { var tokener = new ResetTokenVm { Token = token, Expire = DateTime.UtcNow }; string jsonString = JsonConvert.SerializeObject(tokener); string stringToken = Cryptography.Encrypt(jsonString, member.CryptoKey); stringToken = Cryptography.EncryptToUrlFriendly(stringToken); member.Options.ResetToken = stringToken; token = stringToken; } DataAccess.MemberOption.Update(member.Options); DataAccess.Save(); return(true, token); }
/// <summary> /// Generates a new Reset Token to be use to re-verify email or reset password. /// </summary> /// <param name="loginProviderKey">Login Provider Key</param> /// <param name="type">Member Reset Token Type</param> /// <returns>Token</returns> public (string Token, bool IsSuccess) RequestToken(string loginProviderKey, MemberResetTokenType type) { var resp = Post <string>(API_MEMBER_BASE + "RequestResetToken/", new { ProviderKey = loginProviderKey, Type = type }); return(resp.Response, resp.IsSuccess); }
/// <summary> /// Create a reset token for email and password. /// </summary> /// <param name="providerKey">Provider KEy</param> /// <param name="type">Member Reset Token Type</param> /// <returns><![CDATA[ (bool IsSuccess, string Token) ]]></returns> public (bool IsSuccess, string Token) CreateResetToken(string providerKey, MemberResetTokenType type) { var member = DataAccess.MemberLogin.Find(f => f.ProviderKey == providerKey)?.Member; if (member == null) { return(false, ""); } return(GenerateResetToken(member, type)); }
/// <summary> /// Create a reset token for email and password. /// </summary> /// <param name="id">Member Id</param> /// <param name="type">Member Reset Token Type</param> /// <returns><![CDATA[ (bool IsSuccess, string Token) ]]></returns> public (bool IsSuccess, string Token) CreateResetToken(int id, MemberResetTokenType type) { var member = DataAccess.Member.GetById(id); if (member == null) { return(false, ""); } return(GenerateResetToken(member, type)); }