コード例 #1
0
        public async Task <Authmodel> RegisterAsync(Registermodel rm)
        {
            if (await _user.FindByEmailAsync(rm.Email) != null)
            {
                return new Authmodel {
                           Message = "This email is exist Before"
                }
            }
            ;
            if (await _user.FindByNameAsync(rm.Username) != null)
            {
                return new Authmodel {
                           Message = "This Username is exist Before"
                }
            }
            ;
            var user = new users()
            {
                firstName = rm.Firstname,
                lastName  = rm.Lastname,
                Email     = rm.Email,
                UserName  = rm.Username,
                DeptId    = 100
            };

            var result = await _user.CreateAsync(user, rm.Password);

            if (!result.Succeeded)
            {
                var errs = "";

                foreach (var item in result.Errors)
                {
                    errs = $"{item.Description} , ";
                }
                return(new Authmodel {
                    Message = errs
                });
            }
            await _user.AddToRoleAsync(user, "Student");

            //To make user login Automatic
            var token = await Generatetoken(user);

            return(new Authmodel
            {
                Email = user.Email,
                Tokenlife = token.ValidTo,
                IsAuthenticated = true,
                Roles = new List <string> {
                    "Student"
                },
                Token = new JwtSecurityTokenHandler().WriteToken(token),
                Username = user.UserName,
                DeptID = user.DeptId
            });
        }
コード例 #2
0
        public async Task <IActionResult> Register([FromBody] Registermodel rm)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var res = await _auth.RegisterAsync(rm);

            if (!res.IsAuthenticated)
            {
                return(BadRequest(res.Message));
            }
            return(Ok(res));
        }