09月12, 2016

Github中passport的应用(github登录接口)

1、点击头像下拉三角形按钮,进入settings

alt 2、点击左侧列表按钮中的oAuth applications

alt

3、左侧默认显示的你曾经用github账号登录过的网站,点击developer application,作为开发者应用使用。 4、依次按照表单提示填写内容,最终会生成Client IDClient Secret

alt

5、在项目中安装两个模块

npm install:

"passport": "*",
"passport-github": "*"

6、在入口文件中(app.js) 引入模块:

//创建用户使用github登录
var passport = require("passport"),
    GithubStrategy = require("passport-github").Strategy;
app.use(passport.initialize());//初始化
// YOUR ClientID/Secret
passport.use(new GithubStrategy({
    clientID: "ClientID",
    clientSecret: "ClientSecret",
    callbackURL: "http://localhost:3000/login/github/callback"
}, function(accessToken, refreshToken, profile, done) {
    done(null, profile);
}));

7、在网络请求中,分配路由,并且把github所登录的账户写入session(默认会在user中)

//github login
    app.get("/login/github", passport.authenticate("github", {session: false}));
    app.get("/login/github/callback", passport.authenticate("github", {
        session: false,
        failureRedirect: "/login",
        successFlash: "登陆成功!"
    }), function (req, res) {
        req.session.user = {name: req.user.username, head: "https://gravatar.com/avatar/" + req.user._json.gravatar_id + "?s=48"};
        res.redirect("/");
    });

8、在模板引擎ejs文件中加入github登录的链接进行测试:

<a href="/login/github">使用 GitHub 登录</a>

alt

本文链接:https://beacelee.com/post/github-login-passport.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。