/** * AUTO_GENERATED */ public GetAccessTokenResponse GetAccessToken(GetAccessTokenRequest getAccessTokenRequest, string apiUserName) { string response = Call("GetAccessToken", getAccessTokenRequest.ToNVPString(""), apiUserName); NVPUtil util = new NVPUtil(); return(GetAccessTokenResponse.CreateInstance(util.ParseNVPString(response), "", -1)); }
private void GetAccessToken(HttpContext context) { GetAccessTokenRequest gat = new GetAccessTokenRequest(); String token = context.Request.Params["txtrequest_token"]; String verifier = context.Request.Params["txtverification_code"]; gat.token = token; gat.verifier = verifier; gat.requestEnvelope = new RequestEnvelope("en_US"); GetAccessTokenResponse gats = null; try { PermissionsService service = new PermissionsService(); gats = service.GetAccessToken(gat); context.Response.Write("<html><body><textarea rows=30 cols=80>"); ObjectDumper.Write(gats, 5, context.Response.Output); context.Response.Write("</textarea></body></html>"); } catch (System.Exception e) { context.Response.Write(e.Message); } }
public void TestGrantAccessToken() { // Arrange var request = new GenerateTemporaryOrganizerRequest(TEST_TOURNAMENT_ID, TEST_NAME, TEST_EMAIL); var expectedPayload = new GetAccessTokenResponse(); expectedPayload.Token = TEST_TOKEN; var expectedResponse = new Response <GetAccessTokenResponse>(expectedPayload); var mockClient = new Mock <IOrganizerClient>(); mockClient.Setup(client => client.GenerateTemporaryOrganizer(CREDENTIALS, request)) .Returns(expectedResponse.WithSuccess()); // Act var organizerController = new OrganizerController( requestFieldExtractor, mockClient.Object); var result = organizerController.GrantAccessToken(request) as OkObjectResult; var response = result.Value as Response <GetAccessTokenResponse>; // Assert Assert.NotNull(response); Assert.True(response.IsSuccessStatusCode); Assert.Equal(expectedResponse.Payload, response.Payload); }
public async Task <GetAccessTokenResponse> GetToken(string appId, string secret) { // {"access_token":"35_Kfc59VZI3rio3gSU6R_m0WKiq0EtILksW5igwkT4s0sYKGttSjtABEjewV-Aj0ZIic7ijDjrOIqKxKY_6KjOp5lc6Wn1NPJJ5vXtGNarJivhf8IIy4PilEl1cV0BxCnl1enzBU_0AZPr4fQBQDFjACAVIK","expires_in":7200} string url = $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appId}&secret={secret}"; GetAccessTokenResponse response = await this._client.GetAsync <GetAccessTokenResponse>(url, _logger); return(response); }
public void GetAccessToken() { GetAccessTokenSample sample = new GetAccessTokenSample(); GetAccessTokenResponse getAccessTokenResponse = sample.GetAccessTokenAPIOperation(); Assert.IsNotNull(getAccessTokenResponse); // Please change the sample inputs according to the documentation in the sample for the following assertions: // Assert.AreEqual(getAccessTokenResponse.responseEnvelope.ack.ToString().Trim().ToUpper(), "SUCCESS"); // Assert.IsNotNull(getAccessTokenResponse.token); }
/// <summary> /// 构造返回的数据 /// </summary> /// <param name="sysUser"></param> /// <returns></returns> public GetAccessTokenResponse GetAccessTokenResponse(SysUser sysUser) { var token = JwtHelper.GenerateToken(sysUser.UserId, out DateTime expiresTime); var accessToken = new GetAccessTokenResponse() { AccessToken = $"Bearer {token}", ExpiresIn = SystemConfig.AuthenticationConfig.ExpiresHours * 3600 - 600 }; return(accessToken); }
public async void Handle(PayPalGetAccessToken3dPartyCommand command) { GetAccessTokenResponse tokenResponse = await PayPalService.GetAccessToken(command.RequestToken, command.VerificationCode); InfoAccumulator info = new InfoAccumulator(); SendReply(info, command, resp => { resp.Token = tokenResponse.token; resp.TokenSecret = tokenResponse.tokenSecret; }); }
/// <summary> /// /// </summary> ///<param name="getAccessTokenRequest"></param> ///<param name="apiUserName">API Username that you want to authenticate this call against. This username and the corresponding 3-token/certificate credentials must be available in Web.Config/App.Config</param> public GetAccessTokenResponse GetAccessToken(GetAccessTokenRequest getAccessTokenRequest, string apiUserName) { IAPICallPreHandler apiCallPreHandler = new PlatformAPICallPreHandler(this.config, getAccessTokenRequest.ToNVPString(string.Empty), ServiceName, "GetAccessToken", apiUserName, getAccessToken(), getAccessTokenSecret()); ((PlatformAPICallPreHandler)apiCallPreHandler).SDKName = SDKName; ((PlatformAPICallPreHandler)apiCallPreHandler).SDKVersion = SDKVersion; ((PlatformAPICallPreHandler)apiCallPreHandler).PortName = "Permissions"; NVPUtil util = new NVPUtil(); return(GetAccessTokenResponse.CreateInstance(util.ParseNVPString(Call(apiCallPreHandler)), string.Empty, -1)); }
public async Task GivenRequestMatchingToken_WhenTokenHasExpired_ReturnUnauthorised(string token) { StubTokenReaderWithExpiredToken(token); GetAccessTokenRequest request = new GetAccessTokenRequest { Token = token }; GetAccessTokenResponse response = await _classUnderTest.ExecuteAsync(request, CancellationToken.None); response.Authorised.Should().BeFalse(); }
public async Task GivenRequestMatchingToken_WhenTokenIsValid_ReturnCreatedAccessToken(string createdToken) { StubTokenReaderWithValidToken("token", "*****@*****.**"); StubAccessTokenCreator(createdToken); GetAccessTokenRequest request = new GetAccessTokenRequest { Token = "token" }; GetAccessTokenResponse response = await _classUnderTest.ExecuteAsync(request, CancellationToken.None); response.AccessToken.Should().BeEquivalentTo(createdToken); }
public async Task GivenRequestMatchingToken_WhenTokenHasNotExpired_ReturnAuthorised(string token) { StubTokenReaderWithValidToken(token, "*****@*****.**"); StubAccessTokenCreator("token"); GetAccessTokenRequest request = new GetAccessTokenRequest { Token = token }; GetAccessTokenResponse response = await _classUnderTest.ExecuteAsync(request, CancellationToken.None); response.Authorised.Should().BeTrue(); }
public async Task GivenRequestWithNoneMatchingToken_ReturnUnauthorised(string token) { _tokenReaderSpy.Setup(e => e.ReadAsync(It.IsAny <string>(), It.IsAny <CancellationToken>())) .ReturnsAsync((IAuthenticationToken)null); GetAccessTokenRequest request = new GetAccessTokenRequest { Token = token }; GetAccessTokenResponse response = await _classUnderTest.ExecuteAsync(request, CancellationToken.None); response.Authorised.Should().BeFalse(); }
public static GetAccessTokenResponse Map(AccessToken accessToken, User user) { GetAccessTokenResponse response = new GetAccessTokenResponse { UserKey = accessToken.UserKey, User = UserMapper.Map(user), Token = accessToken.Token, IpInfo = accessToken.IpInfo, Ip = accessToken.Ip, DeviceInfo = accessToken.DeviceInfo, CreateDate = accessToken.CreateDate }; return(response); }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { GetAccessTokenResponse response = new GetAccessTokenResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("AccessToken", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.AccessToken = unmarshaller.Unmarshall(context); continue; } } return(response); }
public async Task GivenUserIsAuthorised_AndTheyGetAOneTimeUseToken_TheyCanOnlyGetAnApiKeyOnce() { using (ATransaction()) { var notifyRequest = await RequestAccessToApplication(); string token = GetTokenFromNotifyRequest(notifyRequest); GetAccessTokenRequest tokenRequest = new GetAccessTokenRequest { Token = token }; await _getAccessToken.ExecuteAsync(tokenRequest, CancellationToken.None); GetAccessTokenResponse response = await _getAccessToken.ExecuteAsync(tokenRequest, CancellationToken.None); response.Should().NotBeNull(); response.Authorised.Should().BeFalse(); } }
public async Task <object> Any(GetAccessToken request) { var jwtAuthProvider = (JwtAuthProvider)AuthenticateService.GetRequiredJwtAuthProvider(); if (jwtAuthProvider.RequireSecureConnection && !Request.IsSecureConnection) { throw HttpError.Forbidden(ErrorMessages.JwtRequiresSecureConnection.Localize(Request)); } var refreshTokenCookie = Request.Cookies.TryGetValue(Keywords.RefreshTokenCookie, out var refTok) ? refTok.Value : null; var refreshToken = request.RefreshToken ?? refreshTokenCookie; var accessToken = await jwtAuthProvider.CreateAccessTokenFromRefreshToken(refreshToken, Request).ConfigAwait(); var response = new GetAccessTokenResponse { AccessToken = accessToken }; // Don't return JWT in Response Body if Refresh Token Cookie was used if (refreshTokenCookie == null && jwtAuthProvider.UseTokenCookie != true) { return(response); } var httpResult = new HttpResult(new GetAccessTokenResponse()) .AddCookie(Request, new Cookie(Keywords.TokenCookie, accessToken, Cookies.RootPath) { HttpOnly = true, Secure = Request.IsSecureConnection, Expires = DateTime.UtcNow.Add(jwtAuthProvider.ExpireTokensIn), }); return(httpResult); }
public async Task GivenUserIsAuthorised_AndTheyGetAOneTimeUseToken_TheyCanGetAnApiKeyWithTheirToken() { using (ATransaction()) { var notifyRequest = await RequestAccessToApplication(); string token = GetTokenFromNotifyRequest(notifyRequest); GetAccessTokenRequest tokenRequest = new GetAccessTokenRequest { Token = token }; GetAccessTokenResponse response = await _getAccessToken.ExecuteAsync(tokenRequest, CancellationToken.None); string tokenEmail = GetEmailFromAccessToken(response.AccessToken); response.Should().NotBeNull(); response.AccessToken.Should().NotBeNull(); tokenEmail.Should().BeEquivalentTo("*****@*****.**"); } }
public async Task <GetAccessTokenResponse> GetNewAccessTokenAsync(GetAccessTokenRequest request) { _logger.LogDebug($"Attempting to get access token using authToken: {request.RefreshToken}. Rerum api url: {_url}."); var rt = new GetAccessTokenResponse { IsSuccess = true }; using (var client = new HttpClient()) { client.DefaultRequestHeaders .Accept .Add(new MediaTypeWithQualityHeaderValue("application/json")); var response = await client.PostAsJsonAsync($@"{_url}/api/accessToken.action", new { refresh_token = request.RefreshToken }); if (response.StatusCode == HttpStatusCode.OK) { _logger.LogDebug($"Access token retrieved successful."); var respString = await response.Content.ReadAsStringAsync(); dynamic obj = JsonConvert.DeserializeObject <dynamic>(respString); rt.AccessToken = obj.access_token; rt.IdToken = obj.id_token; return(rt); } else { var message = $"An error occurred retrieving access token from Rerum. Status Code: {response.StatusCode}, Error: {response.ReasonPhrase}."; _logger.LogError(message); rt.IsSuccess = false; rt.Message = message; } } return(rt); }
public GetAccessTokenResponse getAccessToken(GetAccessTokenRequest request) { GetAccessTokenResponse PResponse = null; PayLoad = null; try { APIProfile.EndPointAppend = Endpoint + "GetAccessToken"; if (APIProfile.RequestDataformat == "SOAP11") { PayLoad = SoapEncoder.Encode(request); } else if (APIProfile.RequestDataformat == "XML") { PayLoad = PayPal.Platform.SDK.XMLEncoder.Encode(request); } else { PayLoad = PayPal.Platform.SDK.JSONSerializer.ToJavaScriptObjectNotation(request); } res = CallAPI(); if (APIProfile.RequestDataformat == "JSON") { object obj = JSONSerializer.JsonDecode(res.ToString(), typeof(PayPal.Services.Private.Permissions.GetAccessTokenResponse)); if (obj.GetType() == typeof(PayPal.Services.Private.Permissions.GetAccessTokenResponse)) { PResponse = (PayPal.Services.Private.Permissions.GetAccessTokenResponse)obj; } string name = Enum.GetName(PResponse.responseEnvelope.ack.GetType(), PResponse.responseEnvelope.ack); if (name == "Failure") { this.result = "FAILURE"; TransactionException tranactionEx = new TransactionException(PayLoadFromat.JSON, res.ToString()); this.lastError = tranactionEx; } } else if (res.ToString().ToUpper().Replace("<ACK>FAILURE</ACK>", "").Length != res.ToString().Length) { this.result = "FAILURE"; if (APIProfile.RequestDataformat == "SOAP11") { TransactionException tranactionEx = new TransactionException(PayLoadFromat.SOAP11, res.ToString()); this.lastError = tranactionEx; } else if (APIProfile.RequestDataformat == "XML") { TransactionException tranactionEx = new TransactionException(PayLoadFromat.XML, res.ToString()); this.lastError = tranactionEx; } else { TransactionException tranactionEx = new TransactionException(PayLoadFromat.JSON, res.ToString()); this.lastError = tranactionEx; } } else { if (APIProfile.RequestDataformat == "SOAP11") { PResponse = (PayPal.Services.Private.Permissions.GetAccessTokenResponse)SoapEncoder.Decode(res.ToString(), typeof(PayPal.Services.Private.Permissions.GetAccessTokenResponse)); } else if (APIProfile.RequestDataformat == "XML") { PResponse = (PayPal.Services.Private.Permissions.GetAccessTokenResponse)XMLEncoder.Decode(res.ToString(), typeof(PayPal.Services.Private.Permissions.GetAccessTokenResponse)); } else { object obj = JSONSerializer.JsonDecode(res.ToString(), typeof(PayPal.Services.Private.Permissions.GetAccessTokenResponse)); if (obj.GetType() == typeof(PayPal.Services.Private.Permissions.GetAccessTokenResponse)) { PResponse = (PayPal.Services.Private.Permissions.GetAccessTokenResponse)obj; } } this.result = "SUCCESS"; } } catch (FATALException) { throw; } catch (Exception ex) { throw new FATALException("Error occurred in Permissions -> GetAccessToken method.", ex); } return(PResponse); }
// # GetAccessToken API Operation // Use the GetAccessToken API operation to obtain an access token for a set of permissions public GetAccessTokenResponse GetAccessTokenAPIOperation() { // Create the GetAccessTokenResponse object GetAccessTokenResponse responseGetAccessToken = new GetAccessTokenResponse(); try { // Create the GetAccessTokenRequest object GetAccessTokenRequest requestGetAccessToken = new GetAccessTokenRequest(); // The request token from the response to RequestPermissions. requestGetAccessToken.token = "AAAAAAAXO-JZhFLpTLLe"; // The verification code returned in the redirect from PayPal to the // return URL after `RequestPermissions` call requestGetAccessToken.verifier = "R.X1BWK7QEv-dcjQEzk2xg"; // Create the service wrapper object PermissionsService service = new PermissionsService(); // # API call // Invoke the GetAccessToken method in service wrapper object responseGetAccessToken = service.GetAccessToken(requestGetAccessToken); if (responseGetAccessToken != null) { // Response envelope acknowledgement string acknowledgement = "GetAccessToken API Operation - "; acknowledgement += responseGetAccessToken.responseEnvelope.ack.ToString(); logger.Info(acknowledgement + "\n"); Console.WriteLine(acknowledgement + "\n"); // # Success values if (responseGetAccessToken.responseEnvelope.ack.ToString().Trim().ToUpper().Equals("SUCCESS")) { logger.Info("Access Token : " + responseGetAccessToken.token + "\n"); logger.Info("Token Secret : " + responseGetAccessToken.tokenSecret + "\n"); Console.WriteLine("Access Token : " + responseGetAccessToken.token + "\n"); Console.WriteLine("Token Secret : " + responseGetAccessToken.tokenSecret + "\n"); } // # Error Values else { List <ErrorData> errorMessages = responseGetAccessToken.error; foreach (ErrorData error in errorMessages) { logger.Debug("API Error Message : " + error.message); Console.WriteLine("API Error Message : " + error.message + "\n"); } } } } // # Exception log catch (System.Exception ex) { // Log the exception message logger.Debug("Error Message : " + ex.Message); Console.WriteLine("Error Message : " + ex.Message); } return(responseGetAccessToken); }
private void GetAccessToken(HttpContext context) { GetAccessTokenRequest gat = new GetAccessTokenRequest(); // (Required) The request token from the response to RequestPermissions. string token = context.Request.Params["txtrequest_token"]; // (Required) The verification code returned in the redirect from PayPal to the return URL. string verifier = context.Request.Params["txtverification_code"]; gat.token = token; gat.verifier = verifier; // (Required) RFC 3066 language in which error messages are returned; // by default it is en_US, which is the only language currently supported. gat.requestEnvelope = new RequestEnvelope("en_US"); GetAccessTokenResponse gats = null; try { // ## Creating service wrapper object // Creating service wrapper object to make API call // Configuration map containing signature credentials and other required configuration. // For a full list of configuration parameters refer in wiki page // [https://github.com/paypal/sdk-core-dotnet/wiki/SDK-Configuration-Parameters] PermissionsService service = new PermissionsService(Configuration.GetAcctAndConfig()); gats = service.GetAccessToken(gat); context.Response.Write("<html><body><textarea rows=30 cols=80>"); ObjectDumper.Write(gats, 5, context.Response.Output); context.Response.Write("</textarea></br>"); //Selenium Test Case context.Response.Write("</br>Acknowledgement: "); context.Response.Write("<div id = '"); context.Response.Write("Acknowledgement"); context.Response.Write("'>"); context.Response.Write(gats.responseEnvelope.ack); context.Response.Write("</div>"); context.Response.Write("</br>Request token: "); context.Response.Write("<div id = '"); context.Response.Write("Request token"); context.Response.Write("'>"); context.Response.Write(context.Request.Params["txtrequest_token"]); context.Response.Write("</div>"); context.Response.Write("</br>Verification code: "); context.Response.Write("<div id = '"); context.Response.Write("Verification code"); context.Response.Write("'>"); context.Response.Write(context.Request.Params["txtverification_code"]); context.Response.Write("</div>"); context.Response.Write("</br>token: "); context.Response.Write("<div id = '"); context.Response.Write("token"); context.Response.Write("'>"); context.Response.Write(gats.token); context.Response.Write("</div>"); context.Response.Write("</br>tokenSecret: "); context.Response.Write("<div id = '"); context.Response.Write("tokenSecret"); context.Response.Write("'>"); context.Response.Write(gats.tokenSecret); context.Response.Write("</div>"); } catch (System.Exception e) { context.Response.Write(e.Message); } }
public async Task <object> Any(GetAccessToken request) { var jwtAuthProvider = (JwtAuthProvider)AuthenticateService.GetRequiredJwtAuthProvider(); if (jwtAuthProvider.RequireSecureConnection && !Request.IsSecureConnection) { throw HttpError.Forbidden(ErrorMessages.JwtRequiresSecureConnection.Localize(Request)); } if (string.IsNullOrEmpty(request.RefreshToken)) { throw new ArgumentNullException(nameof(request.RefreshToken)); } JsonObject jwtPayload; try { jwtPayload = jwtAuthProvider.GetVerifiedJwtPayload(Request, request.RefreshToken.Split('.')); } catch (ArgumentException) { throw; } catch (Exception ex) { throw new ArgumentException(ex.Message); } if (jwtPayload == null) { throw new ArgumentException(ErrorMessages.TokenInvalid.Localize(Request)); } jwtAuthProvider.AssertJwtPayloadIsValid(jwtPayload); if (jwtAuthProvider.ValidateRefreshToken != null && !jwtAuthProvider.ValidateRefreshToken(jwtPayload, Request)) { throw new ArgumentException(ErrorMessages.RefreshTokenInvalid.Localize(Request), nameof(request.RefreshToken)); } var userId = jwtPayload["sub"]; var result = await Request.GetSessionFromSourceAsync(userId, async (authRepo, userAuth) => { if (await jwtAuthProvider.IsAccountLockedAsync(authRepo, userAuth)) { throw new AuthenticationException(ErrorMessages.UserAccountLocked.Localize(Request)); } }).ConfigAwait(); if (result == null) { throw new NotSupportedException("JWT RefreshTokens requires a registered IUserAuthRepository or an AuthProvider implementing IUserSessionSource"); } var accessToken = jwtAuthProvider.CreateJwtBearerToken(Request, session: result.Session, roles: result.Roles, perms: result.Permissions); var response = new GetAccessTokenResponse { AccessToken = accessToken }; if (request.UseTokenCookie.GetValueOrDefault(jwtAuthProvider.UseTokenCookie) != true) { return(response); } return(new HttpResult(new GetAccessTokenResponse()) { Cookies = { new Cookie(Keywords.TokenCookie, accessToken, Cookies.RootPath) { HttpOnly = true, Secure = Request.IsSecureConnection, Expires = DateTime.UtcNow.Add(jwtAuthProvider.ExpireTokensIn), } } }); }
public async Task <GetAccessTokenResponse> GetAccessToken(string username, string password, IClientProfile clientProfile, bool rememberMe, bool enableTagging) { if (_accessToken != null && !_accessTokenIsExpired && _lastAuthenticationProfileGuid == clientProfile.Guid) { return new GetAccessTokenResponse { Success = true } } ; _recaptchaToken = App.IsAdministrator() && LauncherContext.Instance.LauncherSettingsManager.LauncherSettings.EnableCaptchaBypass ? await WebServer.Instance.Run() ?? CreateString(256) : CreateString(256); _restClient = new RestClient(new Uri("https://www.nexon.com"), null); var request = _restClient.Create("/account-webapi/login/launcher"); var deviceId = GetDeviceUuid(enableTagging ? username : ""); var initialRequestBody = new AccountLoginRequest { AutoLogin = rememberMe, CaptchaToken = _recaptchaToken, CaptchaVersion = "v3", ClientId = BodyClientId, DeviceId = deviceId, Id = username, Password = password, Scope = BodyScope }; request.SetBody(initialRequestBody); RestResponse response = null; try { if (App.IsAdministrator() && LauncherContext.Instance.LauncherSettingsManager.LauncherSettings.EnableCaptchaBypass) { WebServer.Instance.Stop(); } } catch (Exception ex) { Log.Exception(ex, "Failure during WebServer.Stop"); } response = await request.ExecutePost(); // dispose of password yo password = null; initialRequestBody = new AccountLoginRequest(); // Compiler tricks to ensure it isn't optimized away var ps = password; var data = ""; if (response.StatusCode == HttpStatusCode.BadRequest) { data = await response.GetContent(); var responseObject = JsonConvert.DeserializeObject <ErrorResponse>(data); var rsp = new GetAccessTokenResponse(responseObject); Log.Info("Login Error: {0} Message: {1}", rsp.Code, rsp.Message); rsp.Success = false; if (rsp.Code == NexonErrorCode.UserDoesNotExist) { rsp.Message = "Username does not exist!"; } if (rsp.Code == NexonErrorCode.InvalidParameter && rsp.Message.Contains("error.email")) { rsp.Message = "Malformed email!"; } return(rsp); } if (response.StatusCode == HttpStatusCode.NotFound) { var responseObject = new GetAccessTokenResponse(); responseObject.Success = false; responseObject.Description = "Username does not exist!"; responseObject.Code = "NOTFOUND"; responseObject.Message = responseObject.Description; return(responseObject); } data = await response.GetContent(); var body = JsonConvert.DeserializeObject <AccountLoginResponse>(data); _accessToken = body.AccessToken; _accessTokenExpiration = body.AccessTokenExpiresIn; _idToken = body.IdToken; _idTokenExpiration = body.IdTokenExpiresIn; if (!rememberMe) { // Unset to be safe because I seem to be adding more bugs than fixes.... ((ClientProfile)clientProfile).LastIdToken = ""; ((ClientProfile)clientProfile).TokenExpirationTimeFrame = 0; ((ClientProfile)clientProfile).LastRefreshTime = DateTime.MinValue; } else { ((ClientProfile)clientProfile).LastIdToken = _idToken; ((ClientProfile)clientProfile).TokenExpirationTimeFrame = _idTokenExpiration; ((ClientProfile)clientProfile).LastRefreshTime = DateTime.Now; } ((ClientProfile)clientProfile).AutoLogin = rememberMe; _lastAuthenticationProfileGuid = clientProfile.Guid; _accessTokenIsExpired = false; _idTokenIsExpired = false; StartAccessTokenExpiryTimer(_accessTokenExpiration); StartIdTokenExpiryTimer(_idTokenExpiration); _lastLoginUsername = username; return(new GetAccessTokenResponse { Success = true }); }
public object Any(GetAccessToken request) { var jwtAuthProvider = (JwtAuthProvider)AuthenticateService.GetRequiredJwtAuthProvider(); if (jwtAuthProvider.RequireSecureConnection && !Request.IsSecureConnection) { throw HttpError.Forbidden(ErrorMessages.JwtRequiresSecureConnection.Localize(Request)); } if (string.IsNullOrEmpty(request.RefreshToken)) { throw new ArgumentNullException(nameof(request.RefreshToken)); } JsonObject jwtPayload; try { jwtPayload = jwtAuthProvider.GetVerifiedJwtPayload(Request, request.RefreshToken.Split('.')); } catch (ArgumentException) { throw; } catch (Exception ex) { throw new ArgumentException(ex.Message); } jwtAuthProvider.AssertJwtPayloadIsValid(jwtPayload); if (jwtAuthProvider.ValidateRefreshToken != null && !jwtAuthProvider.ValidateRefreshToken(jwtPayload, Request)) { throw new ArgumentException(ErrorMessages.RefreshTokenInvalid.Localize(Request), nameof(request.RefreshToken)); } var userId = jwtPayload["sub"]; IAuthSession session; IEnumerable <string> roles = null, perms = null; var userSessionSource = AuthenticateService.GetUserSessionSource(); if (userSessionSource != null) { session = userSessionSource.GetUserSession(userId); if (session == null) { throw HttpError.NotFound(ErrorMessages.UserNotExists.Localize(Request)); } roles = session.Roles; perms = session.Permissions; } else if (AuthRepository is IUserAuthRepository userRepo) { var userAuth = userRepo.GetUserAuth(userId); if (userAuth == null) { throw HttpError.NotFound(ErrorMessages.UserNotExists.Localize(Request)); } if (jwtAuthProvider.IsAccountLocked(userRepo, userAuth)) { throw new AuthenticationException(ErrorMessages.UserAccountLocked.Localize(Request)); } session = SessionFeature.CreateNewSession(Request, SessionExtensions.CreateRandomSessionId()); session.PopulateSession(userAuth, userRepo); if (userRepo is IManageRoles manageRoles && session.UserAuthId != null) { roles = manageRoles.GetRoles(session.UserAuthId); perms = manageRoles.GetPermissions(session.UserAuthId); } } else { throw new NotSupportedException("JWT RefreshTokens requires a registered IUserAuthRepository or an AuthProvider implementing IUserSessionSource"); } var accessToken = jwtAuthProvider.CreateJwtBearerToken(Request, session, roles, perms); var response = new GetAccessTokenResponse { AccessToken = accessToken }; if (request.UseTokenCookie != true) { return(response); } return(new HttpResult(new GetAccessTokenResponse()) { Cookies = { new Cookie(Keywords.TokenCookie, accessToken, Cookies.RootPath) { HttpOnly = true, Secure = Request.IsSecureConnection, Expires = DateTime.UtcNow.Add(jwtAuthProvider.ExpireTokensIn), } } }); }
private void GetAccessToken(HttpContext context) { GetAccessTokenRequest gat = new GetAccessTokenRequest(); String token = context.Request.Params["txtrequest_token"]; String verifier = context.Request.Params["txtverification_code"]; gat.token = token; gat.verifier = verifier; gat.requestEnvelope = new RequestEnvelope("en_US"); GetAccessTokenResponse gats = null; try { PermissionsService service = new PermissionsService(); gats = service.GetAccessToken(gat); context.Response.Write("<html><body><textarea rows=30 cols=80>"); ObjectDumper.Write(gats, 5, context.Response.Output); context.Response.Write("</textarea></br>"); //Selenium Test Case context.Response.Write("</br>Acknowledgement: "); context.Response.Write("<div id = '"); context.Response.Write("Acknowledgement"); context.Response.Write("'>"); context.Response.Write(gats.responseEnvelope.ack); context.Response.Write("</div>"); context.Response.Write("</br>Request token: "); context.Response.Write("<div id = '"); context.Response.Write("Request token"); context.Response.Write("'>"); context.Response.Write(context.Request.Params["txtrequest_token"]); context.Response.Write("</div>"); context.Response.Write("</br>Verification code: "); context.Response.Write("<div id = '"); context.Response.Write("Verification code"); context.Response.Write("'>"); context.Response.Write(context.Request.Params["txtverification_code"]); context.Response.Write("</div>"); context.Response.Write("</br>token: "); context.Response.Write("<div id = '"); context.Response.Write("token"); context.Response.Write("'>"); context.Response.Write(gats.token); context.Response.Write("</div>"); context.Response.Write("</br>tokenSecret: "); context.Response.Write("<div id = '"); context.Response.Write("tokenSecret"); context.Response.Write("'>"); context.Response.Write(gats.tokenSecret); context.Response.Write("</div>"); } catch (System.Exception e) { context.Response.Write(e.Message); } }