Tôi có dịch vụ và mục tiêu của tôi là cho phép người dùng xác thực chúng tôi với tài khoản Github của anh ấy/cô ấy qua OAuth. Lớp API là không trạng thái, vì vậy tôi không muốn duy trì bất kỳ thông tin phiên nào. Mã tôi có cho đến nay là:Tôi làm cách nào để định cấu hình hộ chiếu-github để xác nhận người dùng khi gọi lại?
app.use passport.initialize()
app.use passport.session()
passport.use new GitHubStrategy
clientID: global.config.oauth.github.clientID
clientSecret: global.config.oauth.github.clientSecret
callbackURL: "http://localhost:9500/auth/github/callback"
passReqToCallback: true
, (req, accessToken, refreshToken, profile, done) ->
console.log req.params
serviceQuery =
service: 'github'
provider_id: "#{profile.id}"
UserId: 13
global.db.Service.find
where: serviceQuery
.then (dbService) ->
if not dbService
newService =
service: 'github'
token: accessToken
secret: null
provider_id: profile.id
raw: profile._json
UserId: 13
global.db.Service.create newService
else
dbService.token = accessToken
dbService.raw = profile._json
dbService.save()
.then ->
done null, true
app.get '/auth/github/:sessionToken', (req, res, next) ->
console.log req.params
next()
, passport.authenticate 'github',
scope: 'repo'
session: false
app.get '/auth/github/callback', passport.authenticate('github',
scope: 'repo'
session: false
), (req, res) ->
res.redirect 'http://localhost:8080/app'
Vì vậy mà khi người dùng đang hướng đến /auth/github/:sessionToken
, tôi muốn passport
để làm phép thuật của mình và chuyển hướng người dùng đến github. Điều này làm việc tuyệt vời. Nhưng khi họ quay trở lại /auth/github/callback
, tôi vẫn cần phải xác định được người dùng đó là ai.
Vì đây là dịch vụ API, nên được coi là không quốc tịch, như tôi đã đề cập trước đây, tôi đang tìm cách chuyển mã thông báo đó đến /auth/github/callback
. Làm thế nào tôi có thể thực hiện điều này?
[Hướng dẫn này] (https://scotch.io/tutorials/easy-node-authentication-google) thực sự hiển thị cách hiển thị thông tin từ xác thực google. Có vẻ thông tin google được hiển thị trong biến user.google. Có thể thử và giao diện điều khiển đăng nhập req.user.github để nhận thông tin github của họ. – tilted
Nhưng làm cách nào để lưu trữ nếu tôi không đặt phiên? – Shamoon
Hey @Shamoon cảm ơn rất nhiều. Tôi vui vì nó đã giúp đỡ. – tilted