NodeBB实现登录企业账号系统(简单实现,非CAS登录)

上面两篇文章是通过CAS中央认证系统实现的登录,方案有点复杂,而且有时需要不改Nodebb原有登录界面的情况下实现企业账号共享。

实现步骤:

一,企业服务实现登录api接口,提供接口,用于第三方登录。

这步的实现不描述了,因为每个企业的后台实现方案不一样。

二,开发Nodebb插件,重写Nodebb登录方法。

1,插件的三个常规文件

package.json:

"name": "nodebb-plugin-api-login",
  "version": "0.2.6",
  "description": "NodeBB插件的 LOGIN",
  "main": "library.js",
  "repository": {
    "type": "git",
    "url": "https://github.com/nodebb-china/nodebb-plugin-quickstart"
  }

plugin.json:

{
    "id": "nodebb-plugin-marvoto", 
    "name": "new a plugin for marvoto login", 
    "description": "NodeBB Plugin that allows users to mention other users by prepending an '@' sign to their username",  
    "url": "http://www.marvoto.com",
    "library": "./library.js",
    "hooks": [
        { "hook": "action:auth.overrideLogin", "method": "login" }
    ],
   "nbbpm": {
        "compatibility": "^0.7.0"
    }
}

library.js

var winston = require('winston');
var URL = require('url');
 
var    passport = module.parent.require('passport'),
    passportLocal = module.parent.require('passport-local').Strategy,
    plugin = {};
 
plugin.login = function() {
    winston.info('[login] Registering new local login strategy');
    passport.use(new passportLocal({passReqToCallback: true}, plugin.continueLogin));
};
 
 
plugin.continueLogin = function(req, username, password, next) {
    
    console.log('登录中')
    // 1、调用后端api检查用户名密码是否正确,如果正确
    if (true) {
        console.log('登录成功')
        console.log(username)
        console.log(password)

        var user = require.main.require("./src/user")
        // 2、创建用户
        user.create({
            username: username,
            email: `${username}@xiaomi.com`,
        },function(res){
                    
            // 3、登陆
            var userController = 
            require.main.require('./src/controllers/user');
            userController.getUserDataByField(1, 'username', username, 
            next)
        })
    }
    else{
        next(new Error('[[error:invalid-username-or-password]]'));
    }
 
        
};
 
module.exports = plugin;

2,编译/部署插件

完工,此时点击登录时,就会自动执行此js脚本了。比CAS简单快捷。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值