Github là một nền tảng lưu trữ hàng triệu dòng mã dưới dạng kho lưu trữ mã. Github cũng cung cấp API dựa trên Oauth mà nhà phát triển có thể tích hợp vào ứng dụng của họ. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn qua một ứng dụng demo đơn giản, trong đó chúng tôi cho phép người dùng xác thực thông qua tài khoản github của họ và chúng tôi sẽ tìm nạp thông tin của người dùng đã xác thực và hiển thị thông tin đó ở định dạng JSON trên màn hình của chúng tôi
- Nút và NPM. Bạn có thể tải về tại đây
- Tài khoản trên Github. Bạn có thể tạo tài khoản của mình tại đây
- Ứng dụng Github. Cách chúng tôi có thể tạo một ứng dụng trên github được hiển thị trong phần tiếp theo bên dưới
Bây giờ, giả sử bạn đã sẵn sàng tài khoản github, đã đến lúc tạo ứng dụng dành cho nhà phát triển. Chỉ cần làm theo các bước đơn giản sau để tạo ứng dụng github oauth của bạn
- Bước 1. Đăng nhập vào tài khoản github của bạn và điều hướng đến tùy chọn cài đặt
Như được hiển thị trong ảnh chụp màn hình bên dưới, các tùy chọn cài đặt có trong danh sách thả xuống xuất hiện khi bạn nhấp vào ảnh đại diện của bạn img. Chỉ cần nhấp vào cài đặt và bạn sẽ được đưa đến trang cài đặt. - Bước 2. Trên trang cài đặt, bạn sẽ thấy các cài đặt khác nhau ở phía bên trái [ như được hiển thị trong ảnh chụp màn hình bên dưới], bạn phải nhấp vào cài đặt dành cho nhà phát triển [ ở dưới cùng] để tiếp tục
- Bước 3. Như được hiển thị trong ảnh chụp màn hình bên dưới, bạn sẽ thấy trang Ứng dụng OAuth, nếu đây là ứng dụng đầu tiên của bạn thì màn hình của bạn sẽ giống hệt như ảnh chụp màn hình bên dưới. Bây giờ hãy nhấp vào nút "Ứng dụng Oauth mới" để tạo Ứng dụng Oauth mới
- Bước 4. Bạn sẽ được yêu cầu cung cấp thông tin chi tiết về ứng dụng mới của mình, chỉ cần điền vào các giá trị thích hợp
- Bước 5. Khi bạn đã điền vào các chi tiết cần thiết, chỉ cần nhấp vào nút Đăng ký ứng dụng cho các bước tiếp theo
- Bước 6. Như được hiển thị trên màn hình, bạn sẽ thấy rằng ứng dụng của mình đã được tạo và bạn sẽ thấy thông tin về ứng dụng của mình. Vui lòng ghi lại
>npm install request
>npm install request
Bây giờ, hãy tạo một chương trình nodejs express rất đơn giản để xác thực người dùng bằng cách sử dụng github api và tìm nạp thông tin chi tiết về những người dùng đó. Trước khi chúng tôi tiếp tục tạo tệp mã nguồn của mình, hãy cài đặt các mô-đun sau nếu bạn chưa cài đặt chúng
- thể hiện
>npm install express
- yêu cầu
>npm install request
Bây giờ hãy tạo một tệp mới
>npm install request
2 và dán đoạn mã sau vào đó.
//Name of the file : github-auth.js
// Section 1 get the requirements and initialize express app
const express = require['express'];
const request = require['request'];
const app = express[];
// Section 2- configure variables and different urls
// config to define app settings
// use environment variables [ process.env ] for sensitive data like api keys and secrets
var config = {
client_id: process.env.github_client_id,
client_secret: process.env.github_client_secret,
redirect_url: '//localhost:3000/github/callback',
authorize_url:'//github.com/login/oauth/authorize',
token_url: '//github.com/login/oauth/access_token',
user_url: '//api.github.com/user',
scope: 'user'
};
// Section-3 Define the routes and callback url
// define routes
app.get['/github/auth', function[req,res]{
// redirect the user to github authorization url
return res.redirect[config.authorize_url];
}];
app.get['/github/callback', function[req,res]{
// extract authorize code
var code = req.query.code
// configure request params
options = {
method: 'POST',
uri: config.token_url,
formData: {
client_id : config.client_id,
client_secret : config.client_secret,
code : code
},
headers: {
accept: 'application/json'
}
};
// make a request for auth_token using above options
request[options , function[e,r,b]{
// process the body
if[b] {
jb = JSON.parse[b]
// configure request to fetch user information
options_user = {
method:'GET',
url: config.user_url+'?access_token='+jb.access_token,
headers: {
accept: 'application/json',
'User-Agent': 'custom'
}
}
request[options_user , function[ee,rr,bb]{
// process the body
if[bb] {
var bo = JSON.parse[bb]
var resp = {
name: bo.name ,
url: bo.url ,
id: bo.id ,
bio: bo.bio
}
return res.json[resp]
}
else {
console.log[er]
return res.json[er]
}
}];
}
}];
}];
// Section 4 start the app
app.listen[3000, [] => console.log['Njera github-api app listening on port 3000!']];
- Phần 1. tham khảo nhận xét trong mã
Trong phần 1 của mã, chúng tôi đã thực hiện nút thông thường. js cụ thể là lấy các phụ thuộc cần thiết bằng cách sử dụng từ khóa>npm install request
- Phần-2. Trong phần này, chúng tôi đã khởi tạo cấu hình cho ứng dụng của mình. Lưu ý rằng chúng tôi đang sử dụng các biến môi trường
>npm install request
>npm install request
Trong Ubuntu, hãy sử dụng các lệnh sau trong thiết bị đầu cuối của bạn.>export github_client_id=YOUR_CLIENT_ID >export github_client_secret=YOUR_CLIENT_SECRET
Trong dấu nhắc lệnh của cửa sổ.set github_client_id=YOUR_CLIENT_ID set github_client_secret=YOUR_CLIENT_SECRET
_______12 và>npm install request
- Phần-3 Xác định các tuyến bắt buộc Chúng tôi có 2 tuyến, đầu tiên là nơi chúng tôi chuyển hướng người dùng đến github để lấy mã ủy quyền và một tuyến khác là cuộc gọi lại mà người dùng được chuyển hướng đến sau khi xác thực và ủy quyền thành công ở phía github
- Nhận ủy quyền_code từ url gọi lại
- Trao đổi ủy quyền_code cho access_token sử dụng mô-đun yêu cầu
- Nhận thông tin người dùng đã xác thực, một lần nữa bằng cách sử dụng mô-đun yêu cầu
- Phần-4. Chạy ứng dụng
Đây là nơi cuối cùng chúng tôi khởi chạy ứng dụng của mình trên cổng 3000 của máy cục bộ. Chúng ta có thể chạy ứng dụng của mình theo cách sau.>node github-auth.js
Sau khi ứng dụng của bạn khởi chạy thành công , chỉ cần truy cập trình duyệt của bạn tại.
http. //máy chủ cục bộ. 3000/github/auth
và điều này sẽ đưa bạn đến github để xác thực và ủy quyền, ủy quyền cho ứng dụng của bạn sử dụng thông tin của bạn và sau khi thực hiện xong, bạn sẽ thấy các chi tiết cơ bản của mình được hiển thị trên màn hình.
Những gì chúng ta đã thảo luận trong hướng dẫn ngắn này chỉ là giọt nước trong đại dương, còn rất nhiều nội dung thông tin khác mà bạn có thể nhận được bằng cách sử dụng github api, để khám phá thêm về api, hãy truy cập trang nhà phát triển github
Trong chương này của loạt bài hướng dẫn về nút trong 30 ngày, chúng ta đã tìm hiểu về nodejs và github api, chúng ta đã hoàn thành những điều sau