public App(IOAuth2Service oAuth2Service) { InitializeComponent(); FlowListView.Init(); MessagingCenter.Subscribe <MessageCenterManager, ChatModel>(this, "sendMessage", (sender, arg) => { var value = JsonConvert.SerializeObject(arg); Console.WriteLine("boom panes panes" + value); socket.Emit("hi", value); }); try { string ip = sqlites.GetIpAddress().Url; ApiConnection.SocketUrl = ip; } catch (Exception ex) { ipAddress.Url = ApiConnection.SocketUrl; sqlites.setIpAddress(ipAddress); string ip = sqlites.GetIpAddress().Url; ApiConnection.SocketUrl = ip; } MainPage = new NavigationPage(new SplashScreen(oAuth2Service)); /** * if (hasLoggedIn()) * { * MainPage = new NavigationPage(new MainPage()); * } * else * { * MainPage = new NavigationPage(new Login()); * } */ }
public OAuth2Controller( UserManager <User> userManager, IOAuth2Service oAuth2Service, IStsOAuth2CodeRepository stsOAuth2CodeRepository, IStsOAuth2RefreshTokenRepository stsOAuth2RefreshTokenRepository) { _userManager = userManager; _oAuth2Service = oAuth2Service; _stsOAuth2CodeRepository = stsOAuth2CodeRepository; _stsOAuth2RefreshTokenRepository = stsOAuth2RefreshTokenRepository; }
public SplashScreen(IOAuth2Service oAuth2Service) { NavigationPage.SetHasNavigationBar(this, false); Task.Run(() => { Device.BeginInvokeOnMainThread(async() => { await initialize(); }); }); InitializeComponent(); }
public App(IOAuth2Service oAuth2Service) { Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MjQzNzAyQDMxMzgyZTMxMmUzMGlDWTJIVjZqZ2swTU1GOFdDaVhrQkhYMktvZjV0TjRtUldJWFN4akpKRlU9"); InitializeComponent(); var datastore = new DataStores(); if (datastore.GetSettingsAsync().Count() > 0) { CurrentLanguage = (!string.IsNullOrWhiteSpace(datastore.GetSettingsAsync().First().Language)) ? datastore.GetSettingsAsync().First().Language : CultureInfo.CurrentUICulture.TwoLetterISOLanguageName; } else { var settings = new Settings_Model(); var Objectifs = new Objectif_Model(); Objectifs.Max_Glycemia = 120; Objectifs.Min_Glycemia = 70; Objectifs.Weight_Objectif = 80; Objectifs.Steps_Objectif = 10000; datastore.AddObjectif(Objectifs); datastore.AddSettings(settings); CurrentLanguage = datastore.GetSettingsAsync().First().Language; } if (CrossSecureStorage.Current.HasKey("first_use")) { var tokenController = new TokenController(); if (tokenController.Token_Expired()) { MainPage = new NavigationPage(new Login_Page()); } else { MainPage = new NavigationPage(new MainPage()); } } else { MainPage = new NavigationPage(new FirstUseLanguage_Page()); } }
public App(IOAuth2Service oAuth2Service) { InitializeComponent(); MainPage = new NavigationPage(new SocialLoginPage(oAuth2Service)); }
public SocialLoginPageViewModel(IOAuth2Service oAuth2Service) { _oAuth2Service = oAuth2Service; OnLoginCommand = new Command <AuthNetwork>(async(data) => await LoginAsync(data)); }
public async Task <IActionResult> Home(string provider, string redirectUrl = "") { if (string.IsNullOrWhiteSpace(provider)) { return(BadRequest()); } if (!await HttpContext.IsProviderSupportedAsync(provider)) { return(BadRequest()); } AuthenticateResult authenticateResult = await _contextAccessor.HttpContext.AuthenticateAsync(provider); if (!authenticateResult.Succeeded) { return(Redirect(redirectUrl)); } var openIdClaim = authenticateResult.Principal.FindFirst(ClaimTypes.NameIdentifier); if (openIdClaim == null || string.IsNullOrWhiteSpace(openIdClaim.Value)) { return(Redirect(redirectUrl)); } List <string> supportProviders = new List <string> { LinUserIdentity.Gitee, LinUserIdentity.GitHub, LinUserIdentity.QQ, }; if (!supportProviders.Contains(provider)) { _logger.LogError($"未知的privoder:{provider},redirectUrl:{redirectUrl}"); throw new LinCmsException($"未知的privoder:{provider}!"); } IOAuth2Service oAuth2Service = _componentContext.ResolveNamed <IOAuth2Service>(provider); long id = await oAuth2Service.SaveUserAsync(authenticateResult.Principal, openIdClaim.Value); List <Claim> authClaims = authenticateResult.Principal.Claims.ToList(); LinUser user = await _userRepository.Select.IncludeMany(r => r.LinGroups) .WhereCascade(r => r.IsDeleted == false).Where(r => r.Id == id).FirstAsync(); if (user == null) { throw new LinCmsException("第三方登录失败!"); } List <Claim> claims = new List <Claim>() { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(ClaimTypes.Email, user.Email ?? ""), new Claim(ClaimTypes.GivenName, user.Nickname ?? ""), new Claim(ClaimTypes.Name, user.Username ?? ""), }; user.LinGroups?.ForEach(r => { claims.Add(new Claim(LinCmsClaimTypes.Groups, r.Id.ToString())); }); //claims.AddRange(authClaims); string token = _jsonWebTokenService.Encode(claims); //TODO 生成刷新token //user.AddRefreshToken(token); //await _userRepository.UpdateAsync(user); return(Redirect($"{redirectUrl}#login-result?token={token}")); }
public async Task <IActionResult> SignInBindCallBack(string provider, string redirectUrl = "", string token = "") { if (string.IsNullOrWhiteSpace(provider)) { return(BadRequest()); } if (!await HttpContext.IsProviderSupportedAsync(provider)) { return(BadRequest()); } if (token.IsNullOrEmpty() || !token.StartsWith("Bearer ")) { return(Redirect($"{redirectUrl}#bind-result?code={ErrorCode.Fail}&message={HttpUtility.UrlEncode("请先登录")}")); } else { token = token.Remove(0, 7); } AuthenticateResult authenticateResult = await _contextAccessor.HttpContext.AuthenticateAsync(provider); if (!authenticateResult.Succeeded) { return(Redirect($"{redirectUrl}#bind-result?code=fail&message={authenticateResult.Failure.Message}")); } var openIdClaim = authenticateResult.Principal.FindFirst(ClaimTypes.NameIdentifier); if (openIdClaim == null || string.IsNullOrWhiteSpace(openIdClaim.Value)) { return(Redirect($"{redirectUrl}#bind-result?code={ErrorCode.Fail}&message={HttpUtility.UrlEncode("未能获取openId")}")); } JwtPayload jwtPayload = (JwtPayload)_jsonWebTokenService.Decode(token); string nameIdentifier = jwtPayload.Claims.FirstOrDefault(r => r.Type == ClaimTypes.NameIdentifier)?.Value; if (nameIdentifier.IsNullOrWhiteSpace()) { return(Redirect($"{redirectUrl}#bind-result?code={ErrorCode.Fail}&message={HttpUtility.UrlEncode("请先登录")}")); } long userId = long.Parse(nameIdentifier); UnifyResponseDto unifyResponseDto; List <string> supportProviders = new List <string> { LinUserIdentity.Gitee, LinUserIdentity.GitHub, LinUserIdentity.QQ }; if (!supportProviders.Contains(provider)) { _logger.LogError($"未知的privoder:{provider},redirectUrl:{redirectUrl}"); unifyResponseDto = UnifyResponseDto.Error($"未知的privoder:{provider}!"); } else { IOAuth2Service oAuth2Service = _componentContext.ResolveNamed <IOAuth2Service>(provider); unifyResponseDto = await oAuth2Service.BindAsync(authenticateResult.Principal, provider, openIdClaim.Value, userId); } return(Redirect($"{redirectUrl}#bind-result?code={unifyResponseDto.Code.ToString()}&message={HttpUtility.UrlEncode(unifyResponseDto.Message.ToString())}")); }
public Login(IOAuth2Service oAuth2Service = null) { InitializeComponent(); this.BindingContext = new SocialMediaAuthentication(oAuth2Service); }
public SocialMediaAuthentication(IOAuth2Service oAuth2Service) { _oAuth2Service = oAuth2Service; OnLoginCommand = new Command <AuthNetwork>(async(data) => await LoginAsync(data)); }
public SocialLoginVM(IOAuth2Service oAuth2Service) { OnLoginCommand = new Command <SocialNetwork>(async(data) => await LoginAsync(data)); }
public SocialLoginPage(IOAuth2Service oAuth2Service) { InitializeComponent(); this.BindingContext = new SocialLoginVM(oAuth2Service); }
public GitHubService(Settings settings, IOAuth2Service oAuth2Service) { _settings = settings; _oAuth2Service = oAuth2Service; }