Franknoirot/fix prod tauri auth (#531)
* Invoke tauri-based logout if in tauri * Add kittycad Rust library * Add logout and get_user Tauri commands * Invoke get_user instead of fetching in Tauri * @jessfraz review Signed-off-by: Frank Noirot <frank@kittycad.io> * Remove unnecessary logout command * Fix rushed last commit --------- Signed-off-by: Frank Noirot <frank@kittycad.io>
This commit is contained in:
@ -85,6 +85,24 @@ async fn login(app: tauri::AppHandle, host: &str) -> Result<String, InvokeError>
|
||||
Ok(token)
|
||||
}
|
||||
|
||||
///This command returns the KittyCAD user info given a token.
|
||||
/// The string returned from this method is the user info as a json string.
|
||||
#[tauri::command]
|
||||
async fn get_user(token: Option<String>) -> Result<kittycad::types::User, InvokeError> {
|
||||
println!("Getting user info...");
|
||||
|
||||
// use kittycad library to fetch the user info from /user/me
|
||||
let client = kittycad::Client::new(token.unwrap());
|
||||
|
||||
let user_info: kittycad::types::User = client
|
||||
.users()
|
||||
.get_self()
|
||||
.await
|
||||
.map_err(|e| InvokeError::from_anyhow(e.into()))?;
|
||||
|
||||
Ok(user_info)
|
||||
}
|
||||
|
||||
fn main() {
|
||||
tauri::Builder::default()
|
||||
.setup(|app| {
|
||||
@ -97,7 +115,12 @@ fn main() {
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
.invoke_handler(tauri::generate_handler![login, read_toml, read_txt_file])
|
||||
.invoke_handler(tauri::generate_handler![
|
||||
get_user,
|
||||
login,
|
||||
read_toml,
|
||||
read_txt_file
|
||||
])
|
||||
.plugin(tauri_plugin_fs_extra::init())
|
||||
.run(tauri::generate_context!())
|
||||
.expect("error while running tauri application");
|
||||
|
Reference in New Issue
Block a user