GithubHelp home page GithubHelp logo

aspnetexternallogin's Introduction

AspNetExternalLogin

Note: Fitur ini memerlukan basic MVC dari AspNetIdentity. Apabila belum dibuat bisa follow tutorial berikut: https://www.notion.so/Configure-Identity-Library-for-Login-Register-System-9e58271693694834b78af256bd3a9247

  1. Buat Google API terlebih dahulu melalui halaman https://console.cloud.google.com/apis/library

  2. Pada navigation menu, pilih APIs & Services, kemudian pilih Enabled APIs & servicesDokumentasi 1

  3. Pilih Create Project Dokumentasi 2

  4. Beri nama project sesuai kebutuhan. Pada contoh ini akan diberikan nama "AspNetTrialGoogleLogin". Lalu pilih create. Dokumentasi 3

  5. Untuk mulai membuat kode authentication, pilih OAuth consent screen pada menu APIs & Services. Pilh external pada User Type, kemudian klik create. Dokumentasi 4

  6. Isikan kolom App name dan User support email. Pada kali ini, App name akan diisi "AspLoginWithGoogle" dan email akan diisi email saya sendiri.

    Dokumentasi 5
  7. Isikan email pada kolom Developer contact information sebagai email kontak. Pada contoh ini akan diisi email saya sendiri. Setelah itu klik Save and Continue. Dokumentasi 6

  8. Pada proses kedua dan ketiga (scopes dan test users), tidak ada data yang perlu ditambahkan, sehingga bisa langsung klik Save and continue.

  9. Berikut summary dari data yang telah dibuat. Apabila memerlukan perubahan, bisa klik tombol edit. Dokumentasi 7
    Kemudian klik back to dashboard apabila data telah benar. Dokumentasi 8

  10. Setelah kembali ke dashboard, klik pada menu Credentials untuk membuat kode ClientID dan ClientSecret

  11. Klik pada menu +Create Credentials, kemudian pilih OAuth Client ID Dokumentasi 9

  12. Pilih Web Application pada Application Type, dan isikan nama pada kolom name. Dalam contoh ini akan diberikan nama AspGoogleLoginClient

    Dokumentasi 22
  13. Isikan URI localhost project pada bagian Authorized Redirect URL, kemudian tambahkan /signin-google sebagai link redirect untuk login. Kemudian klik Create.

    Dokumentasi 11
  14. Selanjutnya akan muncul kotak dialog yang berisi ClientID dan ClientSecret. Copy - paste kedua kode tersebut agar bisa langsung digunakan pada program.

    Dokumentasi 12
  15. Pada VS Code, tambahkan packages Microsoft.AspNetCore.Authentication.Google melalui project explorer.

  16. Pada Program.cs, tambahkan beberapa baris line code sebagai berikut:

//Line code untuk menambahkan external login google
builder.Services.AddAuthentication().AddGoogle(googleOptions =>
{
    googleOptions.ClientId = "Isikan code ClientID";
    googleOptions.ClientSecret = "Isikan code ClientSecret";
});

//Line code untuk setting cookie

app.UseCookiePolicy(new CookiePolicyOptions()
{
    MinimumSameSitePolicy = SameSiteMode.Lax
});

Note: terdapat metode lainnya yang bisa digunakan untuk mengisi ClientId dan ClientSecret, salah satunya adalah mengisinya pada appsettings.json. Pada percobaan kali ini akan diisikan secara langsung tanpa melalui appsettings.json. Dokumentasi 13
17. Buka file Areas > Identity > Pages > Account > ExternalLogin.cshtml.cs kemudian masukan property tambahan yang diperlukan tabel AspNetUsers apabila ada. Dalam hal ini, terdapat 3 tambahan property yaitu EmployeeId, FirstName, dan LastName. Tambahkan property tersebut pada class InputModel
Dokumentasi 14
Kemudian tambahkan line code pada class OnPostConfirmationAsync:
Dokumentasi 15
18. Selanjutnya buka file Areas > Identity > Pages > Account > ExternalLogin.cshtml
19. Masukan code cshtml untuk menampilkan form pengisian EmployeeId, FirstName, dan LastName pada halaman web (bisa skip apabila tidak ada properti tambahan pada AspNetUser) Dokumentasi 16
20. Jalankan program dengan perintah dotnet run/dotnet watch 21. Berikut tampilan halaman awal apabila berhasil menambahkan fitur external login Dokumentasi 17
Klik tombol google di bawah label 'Use another service to log in', maka akan otomatis direct menuju google login. Dalam contoh ini akan digunakan email pribadi saya.
Dokumentasi 18
Apabila berhasil memilih akun google yang akan digunakan, maka akan direct secara otomatis menuju halaman register untuk mebuat akun. Apabila akun telah terdaftar maka akan otomatis menuju ke halaman utama. Masukan properti tambahan lainnya yang diperlukan.
Dokumentasi 19
Klik register dan lakukan konfirmasi email. Apabila email telah dikonfirmasi kemudian lakukan proses login ulang menggunakan google. Apabila akun telah terdaftar maka akan otomatis ter-direct menuju halaman utama/index.
Dokumentasi 21
22. Done.

aspnetexternallogin's People

Contributors

marcellinosp avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.