private string ProduceToken(long?pkSystemUser, string client_id, ApiContext context) { var apiSession = Aparte.WebApi.BeginApiSession.Execute(context, pkSystemUser); Aparte.WebApi.GetTenant.Execute(context, apiSession); context = null; var token = new JWEAsymmetric(); try { token.AsymmetricKey = Audiences.Item(client_id).PublicKey; token.SetExpiry(apiSession.TokenExpiry); token.AddClaim(JWTConstant.PK_SYSTEM_USER, apiSession.PKSystemUser.ToString()); token.AddClaim(JWTConstant.USER_NAME, apiSession.UserName); token.AddClaim(JWTConstant.USER_CODE, apiSession.UserCode); token.AddClaim(JWTConstant.ACCESS_TOKEN, apiSession.AccessToken.ToString()); token.AddClaim(JWTConstant.REFRESH_TOKEN, apiSession.RefreshToken.ToString()); } catch (Exception ex) { } var encryptedToken = token.SerializeToBase64UrlString(); UserList.Add(apiSession.PKSystemUser, apiSession.UserName, apiSession.UserCode, apiSession.AccessToken, apiSession.RefreshToken, apiSession.TokenExpiry); return(encryptedToken); }
public IHttpActionResult VerifyClient([FromBody] Aparte.Credentials.ApplicationCredential application) { var token = new JWEAsymmetric(); token.AddClaim(JWTConstant.CLAIM_SYMMETRIC_KEY, Audiences.Item(KeyFile.JEDIX_WIN_CLIENT_NAME).SecretSymmetricKey); token.AsymmetricKey = Audiences.Item(KeyFile.JEDIX_WIN_CLIENT_NAME).PublicKey; return(Ok <string>(token.SerializeToBase64UrlString())); }
public IHttpActionResult RefreshToken([FromBody] Aparte.Credentials.UserToken userToken) { var accessToken = AsymmetricEncryption.Decrypt(userToken.AccessToken, AuthenticationServer.PRIVATE_KEY); var refreshToken = AsymmetricEncryption.Decrypt(userToken.RefreshToken, AuthenticationServer.PRIVATE_KEY); var context = new ApiContext(); var apiSession = Aparte.WebApi.RefreshApiSession.Execute(context, userToken.PKSystemUser, accessToken, refreshToken); var token = new JWEAsymmetric(); token.AsymmetricKey = Audiences.Item(KeyFile.JEDIX_WIN_CLIENT_NAME).PublicKey; token.SetExpiry(apiSession.TokenExpiry); token.AddClaim(JWTConstant.PK_SYSTEM_USER, apiSession.PKSystemUser.ToString()); token.AddClaim(JWTConstant.ACCESS_TOKEN, apiSession.AccessToken.ToString()); var encryptedToken = token.SerializeToBase64UrlString(); UserList.Add(apiSession.PKSystemUser, apiSession.UserName, apiSession.UserCode, apiSession.AccessToken, apiSession.RefreshToken, apiSession.TokenExpiry); return(Ok <string>(encryptedToken)); }