public async Task <JsonResult> IdTokenVerification(string idToken, int clientTimezoneOffset) { var payload = await GoogleJsonWebSignature.ValidateAsync(idToken, new GoogleJsonWebSignature.ValidationSettings() { IssuedAtClockTolerance = TimeSpan.FromDays(1) // for cases when server's time different from UTC time (google time). }); if (payload != null) { var member = _memberService.GetByEmail(payload.Email); if (member != null) { FormsAuthentication.SetAuthCookie(member.Username, true); _timezoneOffsetProvider.SetTimezoneOffset(clientTimezoneOffset); if (!_memberServiceHelper.IsFirstLoginPerformed(member)) { SendWelcomeNotification(member.Key); _memberServiceHelper.SetFirstLoginPerformed(member); } return(Json(new GoogleAuthResultModel() { Url = DefaultRedirectUrl, Success = true })); } } return(Json(new GoogleAuthResultModel())); }
public override ActionResult Login(LoginModelBase model) { if (!ModelState.IsValid) { return(View(LoginViewPath, model)); } SetDefaultUserData(); if (!Membership.ValidateUser(model.Login, model.Password)) { ModelState.AddModelError("UserValidation", _intranetLocalizationService.Translate("Login.Validation.UserNotValid")); return(View(LoginViewPath, model)); } var redirectUrl = model.ReturnUrl ?? DefaultRedirectUrl; if (Members.Login(model.Login, model.Password)) { _timezoneOffsetProvider.SetTimezoneOffset(model.ClientTimezoneOffset); var member = Members.GetByUsername(model.Login); if (!_memberServiceHelper.IsFirstLoginPerformed(_memberService.GetByKey(member.GetKey()))) { SendWelcomeNotification(member.GetKey()); } _memberServiceHelper.SetFirstLoginPerformed(_memberService.GetByKey(member.GetKey())); } return(Redirect(redirectUrl)); }
private void GreetNewMember(IMember member) { _notificationsService.ProcessNotification(new NotifierData { NotificationType = NotificationTypeEnum.Welcome, ReceiverIds = new List <Guid> { member.Key }, ActivityType = CommunicationTypeEnum.Member }); _memberServiceHelper.SetFirstLoginPerformed(member); }