Saya mencatat pengguna saya melalui penggunaan pop-up grafik API, lalu meminta tanda diam untuk mendapatkan acara kalendernya. Semuanya baik-baik saja berfungsi sebagaimana dimaksud dan saya dapat bekerja dengan acara-acara tersebut.

Masalah saya muncul ketika token untuk pengguna yang masuk kedaluwarsa, seperti yang saya pahami itu berarti pengguna tidak masuk lagi, yang juga dapat dilihat ketika saya meminta token diam karena ditolak dengan kesalahan yang mengatakan pengguna tidak diautentikasi. Jadi jika saya melakukan getAccount(), yang mengembalikan akun pengguna yang login saat ini atau null jika tidak login, saya tidak pernah mendapatkan null, saya selalu mendapatkan pengguna terakhir yang mengotentikasi diri mereka sendiri meskipun mereka tidak lagi.

Apakah itu normal? Bagaimana saya bisa memeriksa apakah ada pengguna yang masuk jika ini tidak pernah mengembalikan nol?

0
Kpo 20 November 2020, 15:38

1 menjawab

Jawaban Terbaik

Saat Anda memanggil getAccount() Anda mendapatkan akun untuk cakupan aplikasi Anda. Ini di-cache dan seperti itu terlepas dari apakah pengguna saat ini masuk.

Anda tidak menentukan bahasa mana yang Anda gunakan (memang, ini tidak relevan) jadi di sini adalah contoh menggunakan javascript untuk mengilustrasikan poin saya.

Dari tutorial di https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-javascript-spa#use- the-microsoft-authentication-library-msal-to-sign-in-the-user cuplikan berikut menunjukkan alur kode yang menggambarkan hal di atas:

enter image description here

Setelah memeriksa akun yang di-cache, akuisisi token diam dicoba. Ini hanya masuk akal jika akun tersedia di aplikasi bahkan sebelum mencoba mendapatkan token.

1
MMThornberg 20 November 2020, 14:23