"Enter"a basıp içeriğe geçin

Kullanıcılara Node.js’de Google OAuth kullanma yetkisi nasıl verilir – Linux ipucu

OAuth olarak da bilinen Open Auth, Google, Github, Facebook vb. tarafından yaygın olarak kullanılmaktadır. Web sitenizdeki bir kullanıcıya, üçüncü taraf hizmeti gibi bazı üçüncü taraf hizmetlerini kullanması için yetki vermek için kullanılan bir protokol, bazı verileri (ad, e-posta, profil resmi vb.) web sitenizle paylaşır ve ardından kullanıcıları sizin adınıza birçok zahmetten kurtarır. web siteniz için yönetim Şifreleri ve kullanıcı adları olmadan.

OAuth nasıl çalışır?

Kullanıcı “Google ile oturum aç”ı tıkladığında, kullanıcıyı Google OAuth izin sayfasına götürür. Kullanıcı onayı kabul ettikten ve Google’da kimlik doğrulaması yaptıktan sonra, Google sizinle iletişime geçecektir. Site’yi üçüncü bir kişinin hizmeti olarak kabul etmek, onun adına Kullanıcı’ya yetki vermek ve belirli verileri sizinle paylaşmak. internet sitesi. Bu şekilde, kullanıcının kimlik bilgilerini ayrı ayrı yönetmeden web sitenize girmesine izin verilebilir.

Google OAuth’u Node.js ile uygulama

Hemen hemen tüm programlama dilleri, kullanıcıları yetkilendirmek için google oauth’u uygulamak için farklı kitaplıklar sağlar. Node.js, google oauth’u uygulamak için “passport” ve “passport-google-oauth20” kitaplıklarını sağlar. Bu yazıda, kullanıcıların node.js kullanmasına izin vermek için oauth protokolünü uygulayacağız.

Google’da bir proje oluşturun

Google OAuth’u uygulamanın ilk adımı, Google Developer Console’da web siteniz için bir proje oluşturmaktır. Bu proje, açık kimlik doğrulama için Google’a istekte bulunmak üzere kullanılan API anahtarlarını elde etmek için kullanılır. Aşağıdaki bağlantıya gidin ve projenizi oluşturun.

Google proje yapılandırması

Projeyi oluşturduktan sonra projeye gidiniz ve soldaki menüden “OAuth onay ekranı”nı seçiniz.

Oluştur düğmesine tıklayın ve projenizin tüm ayrıntılarını sağlayın. Devam etmek için Kaydet ve Devam Et’i tıklayın.

Proje kapsamınızı şimdi gönderin. Kapsamlar, bir google hesabından kullanıcı verilerine erişmek için izin türleridir. Belirli kullanıcı verilerini Google hesabınızdan almak için izinleri ayarlamanız gerekir. Kaydet ve Devam Et’i tıklayın.

Şimdi isterseniz projeye test kullanıcıları ekleyin. Test kullanıcıları, test modunda web uygulamanıza erişmesine izin verilen tek kullanıcılardır. Şimdilik herhangi bir testçi girmeyeceğiz ve proje özet sayfasına gitmek için “kaydet ve devam et” düğmesine basacağız.

Özet sayfasında projenizi gözden geçirin ve yapılandırmayı kaydedin. Şimdi projemiz için kimlik bilgileri oluşturacağız. OAuth 2.0 istemci kimlikleri oluşturmak için soldaki menüden Kimlik Bilgileri sekmesini seçin ve üst kısımdaki Kimlik Bilgileri Oluştur düğmesini tıklayın.

Açılır listeden “OAuth İstemci Kimliği”ni seçin ve uygulama tipini ve uygulamanızın adını “Web Uygulaması” olarak belirtin.

Aynı sayfada “Approved Javascript Resources” ve “Approved Redirect URIs” olmak üzere iki URI sağlamamız gerekiyor. “Onaylı JavaScript Kaynakları”, web uygulamanız için HTTP kaynağıdır ve herhangi bir yola sahip olamaz. “Onaylı yönlendirme URI’leri”, Google kimlik doğrulamasından sonra kullanıcının yönlendirileceği yolu içeren tam URI’dir.

Gerekli tüm girişleri yaptıktan sonra, OAuth kimlik bilgilerinizi oluşturmak için Oluştur’a tıklayın.

Node.js projesini başlatın

Şimdiye kadar, kullanıcıların uygulamamızı google kullanarak kullanmalarına izin vermek için bir Google projesi oluşturduk. Şimdi oauth’u uygulamak için node.js projesini başlatacağız. ‘auth’ adlı bir dizin oluşturun ve ekspres projeyi başlatın.

[e-posta korumalı]: ~ $ mkdir Yetki
[e-posta korumalı]: ~ $ CD Yetki
[e-posta korumalı]: ~ $ Npm başlangıç -s

Gerekli npm paketlerini kurun

Google OAuth’u node.js ile uygulamak için bazı npm paketleri kurmamız gerekiyor. “pasaport”, “ekspres”, “yol” ve “google-oauth20-pasaport” kullanacağız. Bu paketleri npm kullanarak kurun.

[e-posta korumalı]: ~ $ npm İndirmek Express Passport-google-oauth20 yolu

Node.js kodunu yazın

Öncelikle biri butonlu iki basit html web sayfası yazacağız ve butona tıklandığında kullanıcıyı yetkilendireceğiz. İkinci sayfa yetkilendirilecek ve yetkilendirme sonrası kullanıcı yetkili sayfaya yönlendirilecektir. “public/index.html” dosyasını oluşturun.

<Programlama dili>
<inşaat>
<Başlık>OAuth</Başlık>
</inşaat>
<gövde>
<ahref=/Google/yetki”>burada yetkili</a>
</gövde>
</Programlama dili>

Şimdi aşağıdaki içeriğe sahip bir “public/success.html” dosyası oluşturun.

<Programlama dili>
<inşaat>
<Başlık> OAuth/Başlık>
</inşaat>
<gövde>
<h1> Sertifikalı/h1>
</gövde>
</Programlama dili>

Web sayfalarını oluşturduktan sonra artık kullanıcıların google oauth kullanması için kod yazacağız. Bir index.js dosyası oluşturun.

// Gerekli paketleri içe aktarın
const ifadesi = gerektirir(“İfade etmek”);
const pasaportu = gerektirir(‘pasaport’);
const yolu = gerektirir(‘yol’);
const GoogleStrategy= gerektirir(“pasaport-google-oauth20”).strateji;
const=açık yürütme();
// parametreleri tanımlayın
// müşteri Kimlik Kartı Google geliştirici konsolundan alacağımız parametredir.
Müşteri Kimliği= “xxxxxx”;
// İstemci sırrı, Google geliştirici konsolundan da alınacaktır
CLIENT_SECRET= “xxxxxx”;
// Yetkilendirmeden sonra, kullanıcı CALLBACK_URL’ye yönlendirilecek
adresi geri ara= “http://yerel ana bilgisayar:8000/resmi”;
// Bağlantı noktası numarası aynı olmalıdır yan İD içeri Geliştirici Konsolu
Lyman=8000;
// Pasaport ara yazılımını yapılandırma
uygulama kullanımı(pasaport.initialize());
uygulama kullanımı(pasaport());
pasaport. Kullanıcı sırası(İşlev(Kimlik KartıVe tamamlamak){
tamamlamak(boş, Kimlik Kartı);
});
pasaport(İşlev(Kimlik KartıVe tamamlamak){
tamamlamak(boş, Kimlik Kartı);
});
// Sonraki argüman, pasaport her zaman işe yarar. Kimlik doğrulama yöntemi çağrılır ve belirtilen çeşitli parametreler döndürülür içeri alan.
pasaport.use(Yeni GoogleStratejisi({
Müşteri Kimliği: CLIENT_ID,
müşteri sırrı: CLIENT_SECRET,
geri aramaURL’si: CALLBACK_URL
}Ve
eşzamansız İşlev(erişimToken, RefreshToken, profil, e-posta, cb){
dönüş cb(boş, e-posta kimliği);
}
));
// Geçerli ana sayfa için Rica etmek
uygulama.al(/“, (istek, fotoğraf) =>
{
res.sendDosya(Izlemek. katılmak(__başlık +’/genel/index.html ‘));
});
// Bir başarı sayfası gönderin için Rica etmek
uygulama.al(/Başarı’, (istek, fotoğraf) =>
{
res.sendDosya(Izlemek. katılmak(__başlık +’/genel/Başarı.html ‘));
});
// Kullanıcı, “düğmeye” her bastığında google kimlik doğrulama sayfasına yönlendirilecektir./Google/kimlik doğrulama yolu.
uygulama.al(/Google/Yetki’,
kimlik doğrulama(‘Google’, {Dürbün: [“profil”, “e-posta”]})
);
// Kimlik doğrulama hatası yeniden yönlendirmesi tanımlandı içeri sonraki yol
uygulama.al(/resmi’,
kimlik doğrulama(‘Google’, {Yönlendirme başarısız oldu: ‘/})Ve
(istek, fotoğraf) =>
{
yönlendirmek(/Başarı’);
}
);
// sunucu çalışıyor
başvuru. dinlemek(Lyman, () =>
{
Kontrol ünitesi(“Sunucu Bağlantı Noktasında Çalışıyor” + PORT)
})

Google OAuth’u Etme Testi

Uygulamamız artık hazır ve kullanıcıların google oauth kullanmasına izin verip vermediğini test edebiliriz. Kök dizine gidin ve uygulamayı çalıştırın.

[e-posta korumalı]: ~ $ index.js düğümü

Şimdi tarayıcıya uygulama url’nizi girin.

8000

Ana sayfa çapa ile birlikte görünür.

Burada yetkilendir’i tıklayın, Google oauth sayfasına yönlendirilecektir.

Uygulama adı “Test”, Google Kimlik Doğrulama sayfasında görüntülenir. Hesabınızı yetkilendirdiğinizde, sizi yetkilendirme sayfasına götürecektir.

çözüm

Farklı web uygulamaları için kullanıcı adlarını ve şifreleri yönetmek, kullanıcılar için mutlu bir iş değildir. Pek çok kullanıcı, yalnızca kimlik bilgilerini yönetmek istemedikleri için hesaplarını kaydetmeden web uygulamanızdan ayrılır. Yetkilendirme işlemi web uygulamanızda veya web sitenizde Google, Facebook vb. tarafından kullanılabilir. Üçüncü taraf hizmetleri kullanılarak, bu hizmetler kullanıcıları kendi adlarına yetkilendirecek ve kullanıcı kimlik bilgilerini ayrı ayrı yönetmeye gerek kalmayacak şekilde basitleştirilebilir. Bu yazıda, kullanıcıların Node.js kullanmasına izin vermek için google oauth protokolünü uyguladık.

Diğer gönderilerimize göz at

[wpcin-random-posts]

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir