https://github.com/thiagobarradas/stone-banking-jwt
Creates Jwt Authentication Token and Consent URL by RSA key pair
https://github.com/thiagobarradas/stone-banking-jwt
apps authentication consent csharp dotnet dotnet-standard2 jwt open-banking openbanking stone stone-payments token
Last synced: about 1 year ago
JSON representation
Creates Jwt Authentication Token and Consent URL by RSA key pair
- Host: GitHub
- URL: https://github.com/thiagobarradas/stone-banking-jwt
- Owner: ThiagoBarradas
- License: mit
- Created: 2020-05-08T16:22:36.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-02-25T19:22:12.000Z (over 4 years ago)
- Last Synced: 2025-04-07T21:51:24.397Z (about 1 year ago)
- Topics: apps, authentication, consent, csharp, dotnet, dotnet-standard2, jwt, open-banking, openbanking, stone, stone-payments, token
- Language: C#
- Homepage: http://nuget.org/packages/StoneBanking.Jwt
- Size: 67.4 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://www.nuget.org/packages/StoneBanking.Jwt/)
[](https://www.nuget.org/packages/StoneBanking.Jwt/)
# StoneBanking.Jwt
Creates Jwt Authentication Token and Consent URL by RSA key pair.
## Install via NuGet
```
PM> Install-Package StoneBanking.Jwt
```
## Stone Banking Application
See more here: https://docs.openbank.stone.com.br/docs/guias/integracao/consentimento/
## Creating you RSA 4096 key pair
```
openssl genrsa -out myprivatekey.pem 4096
openssl rsa -in myprivatekey.pem -pubout > mypublickey.pub
```
## How to use
### Configuring with your application credentials
Add in appsettings.json
```
{
"StoneBankingJwt": {
"PrivateKey": "myprivatekey.pem",
"PublicKey": "mypublickey.pub",
"ClientId": "f7158598-fcbe-4810-98f5-08d512f42977",
"Environment": "Sandbox",
"AuthenticationExpiresInSeconds": 900,
"ConsentExpiresInSeconds": 300,
"ConsentDefaultRedirectUrl": "https://mysite.com/stonebanking/success"
}
}
```
Notes:
- *PrivateKey*: you can change this var with key content. e.g. "-----BEGIN RSA PRIVATE KEY-----\nMIIJKAIBAAKCAgEA..."
- *PublicKey*: you can change this var with key content. e.g. "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BA..."
- *Environment*: Possible values `Sandbox` `Production`
Add in Startup.cs
```
services.AddSingleton(configuration); // register IConfigurationRoot before
services.AddStoneBankingJwt();
```
or
```
services.AddStoneBankingJwt(configuration);
```
or ignoring appsettings.json
```
var settings = new StoneBankingSettings
{
ClientId = "xxxx",
PrivateKey = "key.pem",
PublicKey = "key.pub",
ConsentDefaultRedirectUrl = "https://mysite.com/redirect"
};
services.AddStoneBankingJwt(settings);
```
without IoC:
```
var settings = new StoneBankingSettings
{
ClientId = "xxxx",
PrivateKey = "key.pem",
PublicKey = "key.pub",
ConsentDefaultRedirectUrl = "https://mysite.com/redirect"
};
IStoneBankingJwt stoneBanking = new StoneBankingJwt(settings);
```
### Creating Authentication Token
```
string authenticationToken = stoneBanking.CreateAuthenticationToken();
```
### Creating Access Token with Authentication Token
```
string authenticationToken = stoneBanking.CreateAuthenticationToken();
string accessToken = stoneBanking.CreateAccessToken(authenticationToken);
```
### Creating Access Token with Auto Managed Authentication Token Creation [BEST USAGE]
```
// this will create a token and reuse it during token expiration time
// 60 seconds before expiration, next call will generate a new access token
string accessToken = stoneBanking.CreateAccessToken();
```
### Creating Consent Url
```
string consentUrl = stoneBanking.CreateConsentUrl();
```
### Creating Consent Url With Metadata
```
var metadata = new Dictionary
{
{ "user_id", "user123" },
{ "other_data", "123" }
};
string consentUrl = stoneBanking.CreateConsentUrl(metadata);
```
### Decoding Jwt Token (created with your RSA key pair)
```
Dictionary decodedToken = stoneBankingJwt.DecodeToken(token);
```
## How can I contribute?
Please, refer to [CONTRIBUTING](.github/CONTRIBUTING.md)
## Found something strange or need a new feature?
Open a new Issue following our issue template [ISSUE TEMPLATE](.github/ISSUE_TEMPLATE.md)
## Changelog
See in [nuget version history](https://www.nuget.org/packages/StoneBanking.Jwt)
## Did you like it? Please, make a donate :)
if you liked this project, please make a contribution and help to keep this and other initiatives, send me some Satochis.
BTC Wallet: `1G535x1rYdMo9CNdTGK3eG6XJddBHdaqfX`
