Merge pull request #28 from mike-engel/serde-1.0

Update Serde to 1.0
This commit is contained in:
Vincent Prouillet 2017-04-22 15:01:02 +09:00 committed by GitHub
commit d8439b1053
4 changed files with 10 additions and 10 deletions

View File

@ -11,9 +11,9 @@ keywords = ["jwt", "web", "api", "token", "json"]
[dependencies]
error-chain = { version = "0.10", default-features = false }
serde_json = "0.9"
serde_derive = "0.9"
serde = "0.9"
serde_json = "1.0"
serde_derive = "1.0"
serde = "1.0"
ring = { version = "0.7", features = ["rsa_signing", "dev_urandom_fallback"] }
base64 = "0.4"
untrusted = "0.3"

View File

@ -7,7 +7,7 @@ Add the following to Cargo.toml:
```toml
jsonwebtoken = "2"
serde_derive = "0.9"
serde_derive = "1.0"
```
## How to use

View File

@ -31,7 +31,7 @@ pub use crypto::{
pub use validation::Validation;
use serde::de::Deserialize;
use serde::de::DeserializeOwned;
use serde::ser::Serialize;
use errors::{Result, ErrorKind};
@ -101,7 +101,7 @@ macro_rules! expect_two {
/// // Claims is a struct that implements Deserialize
/// let token_data = decode::<Claims>(&token, "secret", Algorithm::HS256, &Validation::default());
/// ```
pub fn decode<T: Deserialize>(token: &str, key: &[u8], algorithm: Algorithm, validation: &Validation) -> Result<TokenData<T>> {
pub fn decode<T: DeserializeOwned>(token: &str, key: &[u8], algorithm: Algorithm, validation: &Validation) -> Result<TokenData<T>> {
let (signature, signing_input) = expect_two!(token.rsplitn(2, '.'));
if validation.validate_signature && !verify(signature, signing_input, key, algorithm)? {

View File

@ -1,5 +1,5 @@
use base64;
use serde::de::Deserialize;
use serde::de::DeserializeOwned;
use serde::ser::Serialize;
use serde_json::{from_str, to_string, Value};
use serde_json::map::Map;
@ -10,7 +10,7 @@ use header::Header;
/// The return type of a successful call to decode
#[derive(Debug)]
pub struct TokenData<T: Deserialize> {
pub struct TokenData<T> {
pub header: Header,
pub claims: T
}
@ -22,7 +22,7 @@ pub fn to_jwt_part<T: Serialize>(input: &T) -> Result<String> {
}
/// Decodes from base64 and deserializes from JSON to a struct
pub fn from_jwt_part<B: AsRef<str>, T: Deserialize>(encoded: B) -> Result<T> {
pub fn from_jwt_part<B: AsRef<str>, T: DeserializeOwned>(encoded: B) -> Result<T> {
let decoded = base64::decode_config(encoded.as_ref(), base64::URL_SAFE_NO_PAD)?;
let s = String::from_utf8(decoded)?;
@ -30,7 +30,7 @@ pub fn from_jwt_part<B: AsRef<str>, T: Deserialize>(encoded: B) -> Result<T> {
}
/// Decodes from base64 and deserializes from JSON to a struct AND a hashmap
pub fn from_jwt_part_claims<B: AsRef<str>, T: Deserialize>(encoded: B) -> Result<(T, Map<String, Value>)> {
pub fn from_jwt_part_claims<B: AsRef<str>, T: DeserializeOwned>(encoded: B) -> Result<(T, Map<String, Value>)> {
let decoded = base64::decode_config(encoded.as_ref(), base64::URL_SAFE_NO_PAD)?;
let s = String::from_utf8(decoded)?;