示例#1
0
        public async Task <string> GetTokenSocialLogin(SocialLoginViewModel model)
        {
            var user = userManager.FindByEmailAsync(model.Email).Result;

            if (user == null)
            {
                user = new User
                {
                    UserName  = model.Email,
                    Email     = model.Email,
                    FirstName = model.Name
                };
                var result = await userManager.CreateAsync(user);

                await userManager.AddToRoleAsync(user, "user");

                if (!result.Succeeded)
                {
                    return(null);
                }
            }

            JwtSecurityToken token = GenerateToken(user);

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }
示例#2
0
        private void SetInitialObjects()
        {
            var toolBarItem = new ToolbarItem("Fazer Login", "", () => { }, ToolbarItemOrder.Primary);

            ToolbarItems.Add(toolBarItem);

            BindingContext   = new SocialLoginViewModel(_client);
            ViewModel.IsBusy = false;
            ViewModel.ClearLoggedUser();
        }
        public async Task <IActionResult> SocialNetworkLogin([FromBody] SocialLoginViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Failed to login with social network"));
            }
            var token = await this.accountService.GetTokenSocialLogin(model);

            if (token == null)
            {
                return(BadRequest(new { invalid = "Something went wrong" }));
            }
            else
            {
                return(Ok(new
                {
                    token
                }));
            }
        }