Struct Rwt

Source
pub struct Rwt<T> {
    pub payload: T,
    /* private fields */
}
Expand description

Represents a web token.

For optimal usage, your payload should be any struct implementing Serialize, Deserialize, and FromStr, but none of these are technically required.

Fields§

§payload: T

Implementations§

Source§

impl<T: Serialize> Rwt<T>

Source

pub fn with_payload<S: AsRef<[u8]>>(payload: T, secret: S) -> Result<Rwt<T>>

Create a web token with the provided payload.

This function requires that the payload be Serialize.

Source

pub fn encode(&self) -> Result<String>

Encode the token as base64 in the usual format.

In this case, “the usual format” means xxx.xxx where the left hand side is the token itself and the right hand side is the signature. The base64 implementation used currently introduces padding into the equation.

Source

pub fn is_valid<S: AsRef<[u8]>>(&self, secret: S) -> bool

Validate the token.

This function compares the token as serialized against a freshly-derived signature to ensure that it is original and un-tampered-with. This version uses rust-crypto to compare the two results in order to protect against timing attacks.

Trait Implementations§

Source§

impl<T: Debug> Debug for Rwt<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de, T> Deserialize<'de> for Rwt<T>
where T: Deserialize<'de>,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<T, E> FromStr for Rwt<T>
where E: Display, T: FromStr<Err = E>,

Source§

type Err = Error

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self>

Parses a string s to return a value of this type. Read more
Source§

impl<T: PartialEq> PartialEq for Rwt<T>

Source§

fn eq(&self, other: &Rwt<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T> Serialize for Rwt<T>
where T: Serialize,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<T: Eq> Eq for Rwt<T>

Source§

impl<T> StructuralPartialEq for Rwt<T>

Auto Trait Implementations§

§

impl<T> Freeze for Rwt<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for Rwt<T>
where T: RefUnwindSafe,

§

impl<T> Send for Rwt<T>
where T: Send,

§

impl<T> Sync for Rwt<T>
where T: Sync,

§

impl<T> Unpin for Rwt<T>
where T: Unpin,

§

impl<T> UnwindSafe for Rwt<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,