Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Feature: Login with Google #103

Open
azharlihan opened this issue May 20, 2023 · 4 comments
Open

New Feature: Login with Google #103

azharlihan opened this issue May 20, 2023 · 4 comments

Comments

@azharlihan
Copy link
Contributor

azharlihan commented May 20, 2023

Halo mas nafies. bisakah kita menambahkan fitur untuk login menggunakan akun google?

Fitur ini berguna supaya users gak perlu untuk inget-inget lagi password, karena saya menemukan kasus banyak yang lama tidak diakses dan akhirnya lupa password.

Kenapa pilih Google? Karena saat ini hampir mayoritas orang menggunakan (setidaknya salah satu) perangkat android, email gmail yang artinya hampir semua orang memiliki akun google.

Kalo di setujui, saya akan buat PR untuk Fitur ini.

Kurang lebih secara tampilan nanti akan ada tambahan 1 tombol seperti ini

Tampilan Desktop

image

Tampilan Mobile

image

@nafiesl
Copy link
Owner

nafiesl commented May 20, 2023

Halo mas @azharlihan usul yang bagus mas. Kita bisa diskusikan dulu. Ada kepikiran di saya mas:

  1. Ketika menggunakan login dengan google, otomatis user ini terdaftar sebagai user baru kan ya? Bagaimana jika ternyata dia sudah terdaftar di sistem ini, tetapi menggunakan email lain? (saya belum kebayang proses/cara mengaitkannya dengan user existing)

  2. Di sistem ini, admin bisa menambahkan email dan password untuk anggota keluarga yang sudah didaftarkannya. Bagaimana jika user lama sudah pakai email gmail yang sama dengan yang login with SSO google?

  3. Lalu ada potensi kasus lain, seseorang terdaftar dengan alamat email yahoo, lalu dia mau memakai login with google (biar mudah), gimana caranya agar bisa ganti email dengan mudah ya?

Ada masukan mas @azharlihan untuk 3 kasus di atas?

@azharlihan
Copy link
Contributor Author

azharlihan commented May 20, 2023

Terimakasih responnya mas @nafiesl. Sebelum jawab 3 poin diatas, saya mau menyampaikan terlebih dulu, rencana saya fitur ini tidak merubah database. Kolom email yang akan digunakan yaitu kolom email yang ada di tabel users.

Ide dari saya untuk poin-poin di atas seperti ini mas.

Poin 1

Ketika menggunakan login dengan google, user tidak otomatis terdaftar sebagai user baru. Fitur ini khusus untuk login saja yang artinya email dari akun google tersebut harus sudah terdaftar. Untuk pendaftaran user baru, tetap menggunakan halaman register dan untuk proses registrasinya tidak ada perubahan samasekali.

Jadi saat user baru tersebut register dan email yang ia masukkan merupakan email yang terdaftar di google, otomatis ia bisa menggunakan fitur login dengan google.

Beberapa alasan pendukung:

  • Mengurangi kompleksitas tanpa harus mencari cara untuk menghandle kondisi user baru dan kaitannya dengan user existing.
  • Data dari login dengan google tidak bisa digunakan sebagai pembuatan user baru secara langsung, karena tidak ada informasi gender sedangkan gender itu wajib untuk pembuatan user baru.

Contoh struktur dari SSO google:

{
  "id": "10436............",
  "nickname": null,
  "name": "Azhar Lihan",
  "email": "[email protected]",
  "avatar": "https://lh3.googleusercontent.com/a/AG...............",
  "user": {
    "sub": "10436............",
    "name": "Azhar Lihan",
    "given_name": "Azhar",
    "family_name": "Lihan",
    "picture": "https://lh3.googleusercontent.com/a/AG...............",
    "email": "[email protected]",
    "email_verified": true,
    "locale": "en",
    "id": "10436............",
    "verified_email": true,
    "link": null
  },
  "........": "........"
}

Poin 2

Sesuai poin 1 diatas, tidak ada pembuatan user baru melalui fitur login dengan google. Jadi sepertinya dengan penambahan fitur ini tidak membuat konflik email yang sama dengan yang sudah terdaftar.

Di sistem ini ada 2 kemungkinan email baru tercatat di sistem, yaitu ketiga register; dan di fitur edit profil ➡️ tab akun login. Saya lihat admin menambahkan email dan password untuk anggota keluarga yang sudah didaftarkannya melalui fitur ini juga. Untuk email yang sama ketika register sudah ada validasinya, sedangkan untuk email yang sama ketika edit profil ➡️ tab akun login sepertinya belum ada validasinya 😄

image

Poin 3

Ada beberapa solusi yang bisa diambil:

  1. Tambah fitur login dengan yahoo menggunakan yahoo socialite provider. Tapi solusi ini tidak saya rekomendasikan karena jika emailnya selain yahoo, berarti harus nambah lagi.
  2. Login dan ganti emailnya dengan email yang terdaftar di google.
  3. Minta ganti ke manager atau admin untuk mengganti emailnya dengan email yang terdaftar di google.
  4. Daftarkan email tersebut di google.

Sekedar informasi, kita bisa mendaftar akun google dengan email non-gmail semisal yahoo ataupun email custom sekalipun seperti email saya [email protected]. Dan kita bisa menggunakan seluruh produk dan fitur google dengan akun tersebut kecuali email gmail.

Daftar akun google menggunakan email non gmail:

create-google-account-with-non-gmail-email-address-2023-05-21_00.54.04.mp4

Tampilan saat mengakses gmail menggunakan akun google non gmail

Akses gmail dengan akun google non gmail

@azharlihan
Copy link
Contributor Author

azharlihan commented May 20, 2023

Fitur ini terfikirkan oleh saya ketika saya menjadi pengelola data silsilah di keluarga besar saya. Silsilah keluarga cukup besar hingga 6 keturunan. Hampir semua data yang masuk saya yang mengisinya. Kemudian saat saya ingin memberikan akun ke pemiliknya (untuk isi keturunannya atau melengkapi profil mereka sendiri), saya meminta email, isikan email tersebut + password di profil mereka, memberitahukan lagi passwordnya, dan mereka login dengan email + password.

Skenario yang saya pikirkan saat itu adalah akan lebih sederhana jika saya hanya meminta email yang terdaftar di google, isikan email tersebut di profil mereka dan mereka tinggal klik login dengan google.

@nafiesl
Copy link
Owner

nafiesl commented May 31, 2023

Halo mas @azharlihan maaf saya baru bisa kembali ke sini sekarang. Saya suka dengan konsep ini mas. Merepons point-point mas di atas:

Point 1

Ide bagus jika fitur ini hanya untuk login saja, sedangkan pendaftaran user/input anggota keluarga tetap dengan fitur yang sudah ada. Saya sepakat dengan alasan pendukungnya.

Point 2

Sepakat mas. Dan terima kasih sudah melaporkan bug validasinya. 😃

Point 3

OK melihat infomasi dari mas, sepertinya ini bukan issue, karena fitur ini tidak menghalangi user mengganti alamat email nya dari yahoo ke gmail.

Baik saya tunggu PR untuk login with googlenya mas.

Jazakallahu khairan 🤲

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants