mirror of
https://github.com/lifegpc/pixiv_downloader.git
synced 2026-07-04 19:42:47 +08:00
Update
This commit is contained in:
@@ -37,7 +37,10 @@ impl AuthUserContext {
|
||||
.await
|
||||
.try_err3(-1002, gettext("Failed to get parameters:"))?;
|
||||
if root_user.is_some() {
|
||||
// # TODO auth
|
||||
self.ctx
|
||||
.verify_token(&req, ¶ms)
|
||||
.await
|
||||
.try_err3(-403, gettext("Failed to verify the token:"))?;
|
||||
}
|
||||
match &self.action {
|
||||
Some(act) => match act {
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
use super::auth::RSAKey;
|
||||
use super::cors::CorsContext;
|
||||
use super::params::RequestParams;
|
||||
use crate::db::{open_and_init_database, PixivDownloaderDb};
|
||||
use crate::error::PixivDownloaderError;
|
||||
use crate::get_helper;
|
||||
use crate::gettext;
|
||||
use futures_util::lock::Mutex;
|
||||
use hyper::{Body, Request};
|
||||
|
||||
pub struct ServerContext {
|
||||
pub cors: CorsContext,
|
||||
@@ -22,4 +25,34 @@ impl ServerContext {
|
||||
rsa_key: Mutex::new(None),
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn verify_token(
|
||||
&self,
|
||||
req: &Request<Body>,
|
||||
params: &RequestParams,
|
||||
) -> Result<(), PixivDownloaderError> {
|
||||
let mut token_id = None;
|
||||
match req.headers().get("X-TOKEN-ID") {
|
||||
Some(v) => {
|
||||
token_id.replace(v.to_str()?.to_owned());
|
||||
}
|
||||
None => match params.get("token_id") {
|
||||
Some(v) => {
|
||||
token_id.replace(v.to_owned());
|
||||
}
|
||||
None => {}
|
||||
},
|
||||
}
|
||||
let token_id = match token_id {
|
||||
Some(token_id) => token_id,
|
||||
None => return Err(PixivDownloaderError::from(gettext("Token id not found."))),
|
||||
}
|
||||
.parse::<u64>()?;
|
||||
let token = self
|
||||
.db
|
||||
.get_token(token_id)
|
||||
.await?
|
||||
.ok_or(gettext("Token not found."))?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user