AppleAuth adalah perpustakaan yang sangat sederhana untuk .NET yang merangkum logika untuk berkomunikasi dengan REST API Apple untuk Masuk dengan Apple. Tujuan utamanya adalah mempermudah penerapan Masuk dengan Apple untuk aplikasi web apa pun.
Untuk menginstal paket, jalankan perintah berikut di Konsol Manajer Paket Anda:
PM > Install - Package AppleAuth . NET
Atau alternatifnya cukup instal paket menggunakan manajer paket Nuget. Proyek ini dapat ditemukan di sini: Tautan ke NuGet
Untuk menggunakan Masuk dengan Apple, Anda harus mendaftar di Program Pengembang Apple. Setelah Anda mendaftar dalam program, buka Bantuan Akun Pengembang dan navigasikan ke Konfigurasikan kemampuan aplikasi > Masuk dengan Apple. Di sana Anda dapat menemukan informasi untuk mengonfigurasi Masuk dengan Apple untuk aplikasi Anda.
Anda juga dapat memeriksa postingan blog saya untuk informasi lebih lanjut tentang pengaturan di akun pengembang Anda yang menerapkan Masuk dengan Apple.
Selanjutnya, Anda harus mengonfigurasi halaman web Anda untuk Masuk dengan Apple. Ikuti panduan dari dokumentasi resmi. Anda juga dapat merujuk ke tautan ini untuk melihat cara mengatur gaya tombol.
Jika Anda menyebarkan aplikasi Anda ke Aplikasi Web Azure, pastikan Anda menambahkan pengaturan berikut: WEBSITE_LOAD_USER_PROFILE = 1
, sehingga IIS dapat mengakses penyimpanan kunci pribadi di bawah penyimpanan akun pengguna. Anda dapat menerapkan ini dari portal Microsoft Azure dari Konfigurasi > Pengaturan Aplikasi, atau Anda dapat menjalankan perintah berikut di Cloud Shell:
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_LOAD_USER_PROFILE=1
.
Penting juga untuk diperhatikan bahwa pengaturan ini hanya tersedia untuk tingkat harga yang tidak dibagikan.
Jika Anda menyebarkan aplikasi ke server web Anda sendiri, yang menjalankan Microsoft IIS, Anda harus mengaktifkan "Muat Profil Pengguna" di bawah "Pengaturan lanjutan" pada Kumpulan Aplikasi Anda. Jika tidak, Anda akan mendapatkan CryptographicException yang mengatakan "Sistem tidak dapat menemukan file yang ditentukan".
AppleAuthProvider.cs
Buat instance baru AppleAuthProvider
, teruskan parameter yang diperlukan dan Anda siap melakukannya. Gunakan metode GetAuthorizationToken
untuk mendapatkan token otorisasi dari Apple; Gunakan metode GetRefreshToken
untuk memverifikasi apakah pengguna masih menggunakan 'Masuk dengan Apple' untuk masuk ke sistem Anda; Gunakan metode GetButtonHref
untuk mendapatkan string kueri untuk tombol 'Masuk dengan Apple'.
Setelah pengguna mengklik tombol "Masuk dengan Apple" di halaman Anda, mereka akan diarahkan ke https://appleid.apple.com/. Setelah mereka memberikan kredensialnya, Apple akan membuat permintaan POST ke url yang telah Anda tentukan sebagai URL Pengalihan. Anda dapat menangani permintaan tersebut menggunakan InitialTokenResponse.cs
. Untuk mengambil token otorisasi, Anda harus terlebih dahulu membuat instance baru AppleAuthProvider
dengan parameter yang diperlukan. Setelah itu panggil saja metode GetAuthorizationToken() yang meneruskan code
dari objek InitialTokenResponse
dan kunci pribadi Anda. Berikut ini contoh implementasi di C#:
[ HttpPost ]
public async Task HandleResponseFromApple ( AppleAuth . TokenObjects . InitialTokenResponse response )
{
string privateKey = System . IO . File . ReadAllText ( "path/to/file.p8" ) ;
AppleAuth . AppleAuthProvider provider = new AppleAuth . AppleAuthProvider ( "MyClientID" , "MyTeamID" , "MyKeyID" , "MyRedirectUrl" , "SomeState" ) ;
AppleAuth . TokenObjects . AuthorizationToken authorizationToken = await provider . GetAuthorizationToken ( response . code , privateKey ) ;
}
Ingatlah bahwa token yang dikembalikan dari Apple berumur pendek, jadi Anda harus membuat sesi atau pengguna di sistem Anda menggunakan objek AppleAuth.TokenObjects.AuthorizationToken
yang dikembalikan. Setelah itu Anda dapat memverifikasi apakah pengguna masih login menggunakan "Masuk dengan Apple" dengan mengambil token penyegaran menggunakan metode GetRefreshToken
:
[ HttpPost ]
public async Task < bool > IsUserUsingAppleID ( )
{
string privateKey = System . IO . File . ReadAllText ( "path/to/file.p8" ) ;
AppleAuth . AppleAuthProvider provider = new AppleAuthProvider ( "MyClientID" , "MyTeamID" , "MyKeyID" , "https://myredirecturl.com/HandleResponseFromApple" , "SomeState" ) ;
AppleAuth . TokenObjects . AuthorizationToken refreshToken = await provider . GetRefreshToken ( authorizationToken . RefreshToken , privateKey ) ;
return refreshToken != null ;
}
Anda dipersilakan untuk berkontribusi pada proyek ini dan menjadikannya lebih baik. Saat berkontribusi, harap usahakan untuk menjaga sikap profesional, penuh hormat, dan ramah. Pastikan juga Anda mengomunikasikan perubahan yang ingin Anda lakukan melalui masalah atau metode lainnya dengan pemilik repositori ini.
Kami tidak memiliki pedoman ketat untuk membuat permintaan penarikan, namun Anda dapat menggunakan alur GitHub yang sudah dikenal untuk pedoman umum.
Proyek ini dilisensikan di bawah Lisensi MIT - lihat LICENSE.md untuk detailnya