mirror of
https://github.com/jonasroussel/dart_jsonwebtoken.git
synced 2025-07-30 23:42:11 +08:00
v1.0.1
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
## 1.0.1
|
||||||
|
|
||||||
|
- More details on exceptions
|
||||||
|
- New examples
|
||||||
|
|
||||||
## 1.0.0
|
## 1.0.0
|
||||||
|
|
||||||
- New RSA Algorithm (RS256)
|
- New RSA Algorithm (RS256)
|
||||||
|
81
example/example_rsa.dart
Normal file
81
example/example_rsa.dart
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
import 'package:dart_jsonwebtoken/dart_jsonwebtoken.dart';
|
||||||
|
|
||||||
|
const privateKey =
|
||||||
|
'''
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEogIBAAKCAQEAnzyis1ZjfNB0bBgKFMSvvkTtwlvBsaJq7S5wA+kzeVOVpVWw
|
||||||
|
kWdVha4s38XM/pa/yr47av7+z3VTmvDRyAHcaT92whREFpLv9cj5lTeJSibyr/Mr
|
||||||
|
m/YtjCZVWgaOYIhwrXwKLqPr/11inWsAkfIytvHWTxZYEcXLgAXFuUuaS3uF9gEi
|
||||||
|
NQwzGTU1v0FqkqTBr4B8nW3HCN47XUu0t8Y0e+lf4s4OxQawWD79J9/5d3Ry0vbV
|
||||||
|
3Am1FtGJiJvOwRsIfVChDpYStTcHTCMqtvWbV6L11BWkpzGXSW4Hv43qa+GSYOD2
|
||||||
|
QU68Mb59oSk2OB+BtOLpJofmbGEGgvmwyCI9MwIDAQABAoIBACiARq2wkltjtcjs
|
||||||
|
kFvZ7w1JAORHbEufEO1Eu27zOIlqbgyAcAl7q+/1bip4Z/x1IVES84/yTaM8p0go
|
||||||
|
amMhvgry/mS8vNi1BN2SAZEnb/7xSxbflb70bX9RHLJqKnp5GZe2jexw+wyXlwaM
|
||||||
|
+bclUCrh9e1ltH7IvUrRrQnFJfh+is1fRon9Co9Li0GwoN0x0byrrngU8Ak3Y6D9
|
||||||
|
D8GjQA4Elm94ST3izJv8iCOLSDBmzsPsXfcCUZfmTfZ5DbUDMbMxRnSo3nQeoKGC
|
||||||
|
0Lj9FkWcfmLcpGlSXTO+Ww1L7EGq+PT3NtRae1FZPwjddQ1/4V905kyQFLamAA5Y
|
||||||
|
lSpE2wkCgYEAy1OPLQcZt4NQnQzPz2SBJqQN2P5u3vXl+zNVKP8w4eBv0vWuJJF+
|
||||||
|
hkGNnSxXQrTkvDOIUddSKOzHHgSg4nY6K02ecyT0PPm/UZvtRpWrnBjcEVtHEJNp
|
||||||
|
bU9pLD5iZ0J9sbzPU/LxPmuAP2Bs8JmTn6aFRspFrP7W0s1Nmk2jsm0CgYEAyH0X
|
||||||
|
+jpoqxj4efZfkUrg5GbSEhf+dZglf0tTOA5bVg8IYwtmNk/pniLG/zI7c+GlTc9B
|
||||||
|
BwfMr59EzBq/eFMI7+LgXaVUsM/sS4Ry+yeK6SJx/otIMWtDfqxsLD8CPMCRvecC
|
||||||
|
2Pip4uSgrl0MOebl9XKp57GoaUWRWRHqwV4Y6h8CgYAZhI4mh4qZtnhKjY4TKDjx
|
||||||
|
QYufXSdLAi9v3FxmvchDwOgn4L+PRVdMwDNms2bsL0m5uPn104EzM6w1vzz1zwKz
|
||||||
|
5pTpPI0OjgWN13Tq8+PKvm/4Ga2MjgOgPWQkslulO/oMcXbPwWC3hcRdr9tcQtn9
|
||||||
|
Imf9n2spL/6EDFId+Hp/7QKBgAqlWdiXsWckdE1Fn91/NGHsc8syKvjjk1onDcw0
|
||||||
|
NvVi5vcba9oGdElJX3e9mxqUKMrw7msJJv1MX8LWyMQC5L6YNYHDfbPF1q5L4i8j
|
||||||
|
8mRex97UVokJQRRA452V2vCO6S5ETgpnad36de3MUxHgCOX3qL382Qx9/THVmbma
|
||||||
|
3YfRAoGAUxL/Eu5yvMK8SAt/dJK6FedngcM3JEFNplmtLYVLWhkIlNRGDwkg3I5K
|
||||||
|
y18Ae9n7dHVueyslrb6weq7dTkYDi3iOYRW8HRkIQh06wEdbxt0shTzAJvvCQfrB
|
||||||
|
jg/3747WSsf/zBTcHihTRBdAv6OmdhV4/dD5YBfLAkLrd+mX7iE=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
|
''';
|
||||||
|
|
||||||
|
const publicKey =
|
||||||
|
'''
|
||||||
|
-----BEGIN PUBLIC KEY-----
|
||||||
|
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnzyis1ZjfNB0bBgKFMSv
|
||||||
|
vkTtwlvBsaJq7S5wA+kzeVOVpVWwkWdVha4s38XM/pa/yr47av7+z3VTmvDRyAHc
|
||||||
|
aT92whREFpLv9cj5lTeJSibyr/Mrm/YtjCZVWgaOYIhwrXwKLqPr/11inWsAkfIy
|
||||||
|
tvHWTxZYEcXLgAXFuUuaS3uF9gEiNQwzGTU1v0FqkqTBr4B8nW3HCN47XUu0t8Y0
|
||||||
|
e+lf4s4OxQawWD79J9/5d3Ry0vbV3Am1FtGJiJvOwRsIfVChDpYStTcHTCMqtvWb
|
||||||
|
V6L11BWkpzGXSW4Hv43qa+GSYOD2QU68Mb59oSk2OB+BtOLpJofmbGEGgvmwyCI9
|
||||||
|
MwIDAQAB
|
||||||
|
-----END PUBLIC KEY-----
|
||||||
|
''';
|
||||||
|
|
||||||
|
main() {
|
||||||
|
String token;
|
||||||
|
|
||||||
|
/* Sign */ {
|
||||||
|
// Create a json web token
|
||||||
|
final jwt = JWT(
|
||||||
|
payload: {
|
||||||
|
'id': 123,
|
||||||
|
'server': {
|
||||||
|
'id': '3e4fc296',
|
||||||
|
'loc': 'euw-2',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
issuer: 'https://github.com/jonasroussel/jsonwebtoken',
|
||||||
|
);
|
||||||
|
|
||||||
|
// Sign it
|
||||||
|
token = jwt.sign(PrivateKey(privateKey));
|
||||||
|
|
||||||
|
print('Signed token: $token\n');
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Verify */ {
|
||||||
|
try {
|
||||||
|
// Verify a token
|
||||||
|
final jwt = JWT.verify(token, PublicKey(publicKey));
|
||||||
|
|
||||||
|
print('Payload: ${jwt.payload}');
|
||||||
|
} on JWTExpiredError {
|
||||||
|
print('jwt expired');
|
||||||
|
} on JWTError catch (ex) {
|
||||||
|
print(ex.message); // ex: invalid signature
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -73,10 +73,8 @@ class RS256Algorithm extends JWTAlgorithm {
|
|||||||
final parser = RSAPKCSParser();
|
final parser = RSAPKCSParser();
|
||||||
RSAKeyPair pair;
|
RSAKeyPair pair;
|
||||||
|
|
||||||
try {
|
pair = parser.parsePEM(privateKey.key, password: privateKey.passphrase);
|
||||||
pair = parser.parsePEM(privateKey.key, password: privateKey.passphrase);
|
if (pair.private == null) {
|
||||||
assert(pair.private != null);
|
|
||||||
} catch (ex) {
|
|
||||||
throw JWTInvalidError('invalid private RSA key');
|
throw JWTInvalidError('invalid private RSA key');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
name: dart_jsonwebtoken
|
name: dart_jsonwebtoken
|
||||||
description: A dart implementation of the famous javascript library 'jsonwebtoken'.
|
description: A dart implementation of the famous javascript library 'jsonwebtoken'.
|
||||||
version: 1.0.0
|
version: 1.0.1
|
||||||
repository: https://github.com/jonasroussel/jsonwebtoken
|
repository: https://github.com/jonasroussel/jsonwebtoken
|
||||||
homepage: https://github.com/jonasroussel/jsonwebtoken#readme
|
homepage: https://github.com/jonasroussel/jsonwebtoken#readme
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user