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
impl HashedTokenAuth
pub fn new<S: ToString>(app_id: S, app_secret: S) -> Self
pub fn new_with_algorithm<S: ToString>( app_id: S, app_secret: S, algorithm: HashAlgorithm ) -> Self
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
impl ApiAuthenticator for HashedTokenAuth
source§fn get_carrier(&self) -> &Carrier
fn get_carrier(&self) -> &Carrier
Get
Carrier
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,
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
impl Debug for HashedTokenAuth
source§impl TokenGenerator for HashedTokenAuth
impl TokenGenerator for HashedTokenAuth
source§impl WithCarrier for HashedTokenAuth
impl WithCarrier for HashedTokenAuth
source§fn with_carrier(self, carrier: Carrier) -> Self
fn with_carrier(self, carrier: Carrier) -> Self
Update instance to use
Carrier
source§fn with_header_name(self, name: impl ToString) -> Self
fn with_header_name(self, name: impl ToString) -> Self
Update instance to use
Header
Read moresource§fn with_query_param(self, name: impl ToString) -> Self
fn with_query_param(self, name: impl ToString) -> Self
Update instance to use
QueryParam
Read moreAuto Trait Implementations§
impl RefUnwindSafe for HashedTokenAuth
impl Send for HashedTokenAuth
impl Sync for HashedTokenAuth
impl Unpin for HashedTokenAuth
impl UnwindSafe for HashedTokenAuth
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more