Exemplo n.º 1
0
        public static string CreateToken(User user)
        {
            //Ref: https://www.c-sharpcorner.com/article/asp-net-web-api-2-creating-and-validating-jwt-json-web-token/

            var    userDetailsClaim = AuthMapper.UserDetailsClaimMap(user);
            string userDetails      = JsonConvert.SerializeObject(userDetailsClaim);

            //Create a List of Claims, Keep claims name short
            var permClaims = new List <Claim>();

            permClaims.Add(new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()));
            permClaims.Add(new Claim(ClaimTypes.Role, user.Role));

            permClaims.Add(new Claim(USER_ID_CLAIM, user.Id.ToString()));
            permClaims.Add(new Claim(USER_DETAILS_CLAIM, userDetails));
            permClaims.Add(new Claim(USER_ROLE_CLAIM, user.Role));

            //Create Security Token object by giving required parameters
            var token = new JwtSecurityToken(
                TokenIssuer,   //Issure
                TokenAudience, //Audience
                permClaims,
                expires: DateTime.Now.AddMinutes(double.Parse(TokenLifetimeInMinutes)),
                signingCredentials: SigningCredentials
                );
            var jwt_token = new JwtSecurityTokenHandler().WriteToken(token);

            return(jwt_token);
        }
 public override void Serialize(Stream stream)
 {
     using (var w = stream.ToBinaryWriter(true))
     {
         w.WriteEnum(AuthMapper.GetOpCode(GetType()));
         Serializer.Serialize(w, this);
     }
 }
Exemplo n.º 3
0
        public IHttpActionResult Login([FromBody] Login login)
        {
            var existingUser = userService.GetUserByUsername(login.Username);

            if (existingUser == null)
            {
                return(Unauthorized());
            }
            var isAuthenticated = Crypto.VerifyHashedPassword(existingUser.PasswordHash, login.Password);

            if (!isAuthenticated)
            {
                return(Unauthorized());
            }
            var token = JwtUtility.CreateToken(existingUser);
            var user  = AuthMapper.LoginMap(existingUser, token);

            return(Ok(user));
        }
Exemplo n.º 4
0
 public ProudMessage GetMessage(ISession session, ushort opCode, BinaryReader r)
 {
     return(AuthMapper.GetMessage((AuthOpCode)opCode, r));
 }