Compare commits

..
10 changed files with 23 additions and 20 deletions

No files matched your search

-1
View File
@@ -51,7 +51,6 @@ jobs:
pnpm i
npm config set @${{ needs.persiapan.outputs.organisasi }}:registry=https://${{ vars.ALAMAT_GITEA }}/api/packages/${{ needs.persiapan.outputs.organisasi }}/npm/
npm config set -- '//${{ vars.ALAMAT_GITEA }}/api/packages/${{ needs.persiapan.outputs.organisasi }}/npm/:_authToken' "${{ secrets.KUNCI_PENERBITAN }}"
npm run prepublishOnly
npm publish
rm -rf pnpm-lock.yaml .pnpm-store/
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "tauri-plugin-auth"
version = "0.1.8"
version = "0.1.0"
authors = [ "Rizky Denianto" ]
description = "Program sederhana untuk interaksi dengan autentikasi aplikasi tauri di berbagai sistem operasi"
edition = "2024"
-1
View File
@@ -1,3 +1,2 @@
# tauri-plugin-auth
Program sederhana untuk interaksi dengan autentikasi aplikasi tauri di berbagai sistem operasi
+3 -3
View File
@@ -42,7 +42,7 @@ dependencies {
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
implementation(project(":tauri-android"))
implementation("androidx.credentials:credentials:1.5.0")
implementation("androidx.credentials:credentials-play-services-auth:1.5.0")
implementation("com.google.android.libraries.identity.googleid:googleid:1.1.1")
implementation("androidx.credentials:credentials:1.7.0-alpha03")
implementation("androidx.credentials:credentials-play-services-auth:1.7.0-alpha03")
implementation("com.google.android.libraries.identity.googleid:googleid:<latest version>")
}
+11 -6
View File
@@ -28,26 +28,27 @@ import java.security.SecureRandom
@InvokeArg
class KirimArgs {
var id: String? = null
var idKlien: String? = null
}
@TauriPlugin
class AuthPlugin(private val activity: Activity) : Plugin(activity) {
class BluclasPlugin(private val activity: Activity) : Plugin(activity) {
private val credentialManager by lazy { CredentialManager.create(activity) }
private val scope = CoroutineScope(Dispatchers.Main)
private val idKlien: String? = null
@Command
fun masuk(invoke: Invoke) {
val args = invoke.parseArgs(KirimArgs::class.java)
val id = args.id
if (id.isNullOrEmpty()) {
idKlien = args.idKlien
if (idKlien.isNullOrEmpty()) {
invoke.reject("ID Klien belum disediakan")
return
}
val googleIdOption: GetGoogleIdOption = GetGoogleIdOption.Builder()
.setFilterByAuthorizedAccounts(true)
.setServerClientId(id)
.setServerClientId(idKlien)
.setNonce(generateSecureRandomNonce())
.build()
@@ -63,7 +64,11 @@ class AuthPlugin(private val activity: Activity) : Plugin(activity) {
)
handleSignInResult(result, invoke)
} catch (e: NoCredentialException) {
signInWithAllAccounts(id, invoke)
if (args.filterByAuthorizedAccounts) {
signInWithAllAccounts(idKlien, invoke)
} else {
invoke.reject("Tidak ada kredensial Google yang tersedia: ${e.message}")
}
} catch (e: GetCredentialException) {
invoke.reject("Gagal masuk: ${e.message}")
}
+1 -1
View File
@@ -5,7 +5,7 @@ export type SAuthMuatanMasuk = {
};
export async function masuk(muatan: SAuthMuatanMasuk): Promise<null> {
return await invoke<null>("plugin:auth|masuk", { muatan: muatan });
return await invoke<null>("plugin:auth|masuk", { payload: muatan });
}
export async function keluar(): Promise<null> {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@segubi/tauri-plugin-auth-api",
"version": "0.1.8",
"version": "0.1.0",
"author": "Rizky Denianto",
"description": "Program sederhana untuk interaksi dengan autentikasi aplikasi tauri di berbagai sistem operasi",
"type": "module",
+2 -2
View File
@@ -5,8 +5,8 @@ use crate::Result;
use crate::models::SAuthMuatanMasuk;
#[command]
pub(crate) async fn masuk<R: Runtime>(app: AppHandle<R>, muatan: SAuthMuatanMasuk) -> Result<()> {
return app.auth().masuk(muatan);
pub(crate) async fn masuk<R: Runtime>(app: AppHandle<R>, payload: SAuthMuatanMasuk) -> Result<()> {
return app.auth().masuk(payload);
}
#[command]
+3 -3
View File
@@ -25,14 +25,14 @@ pub fn init<R: Runtime, C: DeserializeOwned>(
pub struct Auth<R: Runtime>(PluginHandle<R>);
impl<R: Runtime> Auth<R> {
pub fn masuk(&self, muatan: SAuthMuatanMasuk) -> crate::Result<()> {
pub fn masuk(&self, payload: SAuthMuatanMasuk) -> crate::Result<()> {
return self
.0
.run_mobile_plugin("masuk", muatan)
.run_mobile_plugin("masuk", payload)
.map_err(Into::into);
}
pub fn keluar(&self) -> crate::Result<()> {
pub fn keluar(&self) -> crate::Result<Vec<()>> {
return self.0.run_mobile_plugin("keluar", ()).map_err(Into::into);
}
}
+1 -1
View File
@@ -3,5 +3,5 @@ use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SAuthMuatanMasuk {
pub id: String,
pub id_klien: String,
}