pub struct Credential { /* private fields */ }
Implementations§
Source§impl Credential
impl Credential
pub fn open_id(&self) -> &str
pub fn session_key(&self) -> &str
pub fn union_id(&self) -> Option<&str>
Sourcepub fn decrypt(&self, encrypted_data: &str, iv: &str) -> Result<User>
pub fn decrypt(&self, encrypted_data: &str, iv: &str) -> Result<User>
解密用户数据,使用的是 AES-128-CBC 算法,数据采用PKCS#7填充。 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html
use axum::{extract::State, response::IntoResponse, Json};
use open_wechat::{client::Client, Result};
use serde::Deserialize;
#[derive(Deserialize, Default)]
pub(crate) struct EncryptedPayload {
code: String,
encrypted_data: String,
iv: String,
}
pub(crate) async fn decrypt(
State(client): State<Client>,
Json(payload): Json<EncryptedPayload>,
) -> Result<impl IntoResponse> {
let credential = client.login(&payload.code).await?;
let user = credential.decrypt(&payload.encrypted_data, &payload.iv)?;
Ok(())
}
Trait Implementations§
Source§impl Clone for Credential
impl Clone for Credential
Source§fn clone(&self) -> Credential
fn clone(&self) -> Credential
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for Credential
impl Debug for Credential
Source§impl<'de> Deserialize<'de> for Credential
impl<'de> Deserialize<'de> for Credential
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Credential
impl RefUnwindSafe for Credential
impl Send for Credential
impl Sync for Credential
impl Unpin for Credential
impl UnwindSafe for Credential
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