Struct apisdk::HashedTokenAuth

source ·
pub struct HashedTokenAuth { /* private fields */ }
Expand description

This struct is used to sign request by hashed token.

§Generate token algorithm

hash = md5 | sha1(default) | sha256
timestamp = UNIX_TIMESTAMP (in second)
sign = hash($app_id + $app_secret + $timestamp)
token = base64($client_id + "," + $app_id + "," + $timestamp + "," + $sign)
      = (or) base64($app_id + "," + $timestamp + "," + $sign)

§Parse token

let token = "xxx";
let parsed_token = ParsedHashedToken::parse(token)?;
if parsed_token.is_expired(60 * 5, None) {
    // Expired Token
} else if parsed_token.is_signed("my-secret-key", HashAlgorithm::MD5) {
    // Invalid Token
}

Implementations§

source§

impl HashedTokenAuth

source

pub fn new<S: ToString>(app_id: S, app_secret: S) -> Self

source

pub fn new_with_algorithm<S: ToString>( app_id: S, app_secret: S, algorithm: HashAlgorithm ) -> Self

source

pub fn new_with_client_id<S: ToString>( client_id: S, app_id: S, app_secret: S, algorithm: HashAlgorithm ) -> Self

Trait Implementations§

source§

impl ApiAuthenticator for HashedTokenAuth

source§

fn get_carrier(&self) -> &Carrier

Get Carrier
source§

fn type_name(&self) -> &str

Get type_name, used in Debug
source§

fn authenticate<'life0, 'life1, 'async_trait>( &'life0 self, req: Request, _extensions: &'life1 Extensions ) -> Pin<Box<dyn Future<Output = Result<Request, Error>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Authenticate request Read more
source§

impl Debug for HashedTokenAuth

source§

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

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

impl TokenGenerator for HashedTokenAuth

source§

fn generate_token<'life0, 'life1, 'async_trait>( &'life0 self, _req: &'life1 Request ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Generate a new token
source§

impl WithCarrier for HashedTokenAuth

source§

fn with_carrier(self, carrier: Carrier) -> Self

Update instance to use Carrier
source§

fn with_header_name(self, name: impl ToString) -> Self

Update instance to use Header Read more
source§

fn with_query_param(self, name: impl ToString) -> Self

Update instance to use QueryParam Read more

Auto Trait Implementations§

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more