Gönderi erişimi olmadan giriş
Bazı uygulamaların yalnızca bir kişinin Hive üzerinde kim olduğunu bilmesi gerekir. Onun adına hiç gönderi paylaşmaz, oy vermez ya da bir şey yayınlamazlar. Hivesigner kişileri böyle bir uygulamaya hiçbir gönderi yetkisi olmadan giriş yaptırabilir. Kullanıcı bir Hive hesabını denetlediğini kanıtlar. Uygulamanız hesabın adını öğrenir. Bu sayfa bunun iki yolunu ve sonucu güvenle denetlemeyi anlatır.
İki yol
- Uygulama hesabıyla: uygulamanızın kendi Hive hesabı vardır ve
scope=loginister. Token uygulamanızı adlandırır. - Uygulama hesabı olmadan: kendi Hive hesabı olmayan bir site yalnızca bir
redirect_urigönderir. Token hiçbir uygulamayı adlandırmaz. Siteniz onu kendisi denetler.
Hiçbiri kullanıcıdan ya da uygulama hesabınızdan bir izin gerektirmez, bu yüzden kullanıcının hesabında hiçbir şey değişmez. Hivesigner girişi gönderi anahtarıyla imzalar; cihazda o hesabın gönderi anahtarı yoksa aktif anahtarla imzalar.
Uygulama hesabıyla
-
Uygulamanızı kaydedin: Hive hesabını oluşturun ve geri çağırma adreslerinizi listeleyin. İstemci gizli anahtarına da @hivesigner iznine de ihtiyacınız yoktur.
-
Kullanıcıyı şuraya gönderin:
https://hivesigner.com/oauth2/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=login&state=STATE -
Kullanıcı, Kapsam bölümünde “Hesabınızın kullanıcı adını görüntüleme” yazan “APP uygulamasına giriş yap” ekranını görür. Giriş yap seçerler.
-
Hivesigner geri çağırma adresinize yönlendirir:
REDIRECT_URI?state=STATE&access_token=TOKEN&expires_in=604800&username=USERNAME -
statedeğerini karşılaştırın, sonra token'ı denetleyin. Bu, uygulamanızı adlandıran birlogintoken'ıdır, bu yüzden şu ikisinden biri işe yarar:- onunla
GET /api/meçağrısını yapın; yanıtta hesapuseralanında,scopeise["login"]olarak gelir, sonra token'ı çözüptypeveappdeğerlerini denetleyin (API'ye sorun); - ya da
type: 'login've uygulamanızın adıyla kendiniz denetleyin.
- onunla
Bir login token'ı yayın yapamaz: /api/broadcast onunla gönderilen her operasyonu reddeder.
Uygulama hesabı olmadan
-
Kullanıcıyı,
client_idolmadan yalnızca birredirect_uritaşıyan yetkilendirme adresine gönderin:https://hivesigner.com/oauth2/authorize?redirect_uri=REDIRECT_URI&state=STATEGeri çağırma adresi
https://olmalı ya da geri döngüdehttp://olmalıdır (localhost,127.0.0.1,[::1]). Onu kaydedeceğiniz bir liste yoktur. Hivesigner buradascopeveresponse_typedeğerlerini yok sayar: yanıt her zaman bir giriş token'ıdır. -
Kullanıcı “HOST Hive kullanıcı adınızı doğrulamak istiyor.” yazısını görür; HOST, geri çağırma adresinizin ana makinesidir. Giriş yap seçerler.
-
Hivesigner geri çağırma adresinize yönlendirir:
REDIRECT_URI?state=STATE&access_token=TOKEN&expires_in=604800&username=USERNAME -
statedeğerini karşılaştırın, sonra token'ı kendiniz denetleyin. API, hiçbir uygulamayı adlandırmayan bir token'ı kabul etmez, bu yüzden imzayı hesabın anahtarlarına karşı sunucunuz doğrular. Bkz. Kendiniz denetleyin;type: 'login'ile veappolmadan.
Geri çağırma adresi bir web adresi değilse ya da geri döngü dışında düz http:// ise Hivesigner isteği reddeder ve kullanıcıya nedenini söyler.
Hangisini kullanmalı
| Uygulama hesabıyla | Uygulama hesabı olmadan | |
|---|---|---|
| Kullanıcının gördüğü | Uygulamanızın adı, resmi ve Hive hesabı | Yalnızca sitenizin ana makinesi |
| Kurulum | Geri çağırma adresleri listelenmiş bir Hive hesabı | Yok |
| Token'ın adlandırdığı | Sizin uygulamanız | Hiçbir uygulama |
| Token'ı denetleme | /api/me ya da kendi kodunuz |
Kendi kodunuz |
| Sonradan gönderi erişimi | Aynı hesap: posting isteyin ve @hivesigner'a izin verin |
Önce bir uygulama hesabı gerekir |
Yapabiliyorsanız bir uygulama hesabı kullanın. Kullanıcılar uygulamanızın adını ve resmini görür. Sunucunuz başka bir uygulama için üretilmiş token'ları reddedebilir. Sonradan aynı hesapla gönderi erişimine geçebilirsiniz.
İkinci yolu, sitenizin bir Hive hesabı yoksa ve istemiyorsanız kullanın.
Girişi güvenle denetleyin
- İsteği
stateile bağlayın. Her giriş için rastgele bir değer üretin, onu kullanıcının oturumunda saklayın, geri çağırma adresinizde karşılaştırın ve bir kez kullanın. Bkz. İsteği state ile koruyun. - Türü denetleyin. Yalnızca
signed_message.typedeğeriloginolanı kabul edin. Bir kod ya da yenileme token'ı giriş değildir. - Uygulamayı denetleyin. Uygulama hesabıyla
signed_message.appsizin uygulamanız olmalıdır. Uygulama hesabı olmadan ise hiçappolmamalıdır. - Yaşı denetleyin. Token'ı yönlendirmeden hemen sonra denetlersiniz, bu yüzden onu yalnızca
timestampdeğerinden sonraki birkaç dakika içinde kabul edin (örneğin bir dakikalık saat farkıyla 5 dakika). - Her token'ı bir kez kullanın. Başarılı bir denetimden sonra kendi oturumunuzu başlatın (örneğin httpOnly bir çerezle) ve Hivesigner token'ını atın. Kabul ettiğiniz token'ları, yaş denetimini geçemeyecek kadar eskiyene dek kayıtta tutun. Yeniden gördüklerinizi reddedin.
- Token'ı günlüklerin dışında tutun. O, geri çağırma adresinizin sorgu dizesiyle gelir. Bkz. Token'ları güvende tutun.
Örnekler
https://hivesearcher.com ve https://openhive.chat gibi siteler, arama ve sohbet gibi zincir dışında kalan özellikler için kişilerin Hive hesaplarıyla giriş yapmasına izin verir. Kişinin kim olduğunu bilmeleri yeter, fazlası gerekmez.