使用cas模块搭建cas的node client

作者:norion时间:2017年4月25日评论次数:0 条

由于项目的底层架构是java,所以一些基础服务是有java搭建的,其中登录模块是由java cas搭建,这样可以做到多个系统单点登录,其中,我做的一个node项目是做这些系统中的一个,所以我引入了node的cas模块,使用时直接用npm安装就可以了:

npm i cas

使用的地方直接引入,当然你可以像我一样做成一个可以复用的模块

const CAS = require('cas')
const urlFix = require('./api.config')

module.exports = new CAS({
    base_url: 'http://192.168.250.173/cas',  // cas服务端
    service: 'http://192.168.250.172/',  // cas客服端也就是node端,其中,请加入 / (有坑)
    version: 2.0
})

然后,在路由上需要认证的地方,要获取cas的ticket,我是把这个认证做成一个路由的中间件,比如:

app.use('/login', auth, require('./login'))

auth,就是写获取ticket和校验ticker的地方,当然,也可以直接用做路由上,

router.get('/post', (req, res) => {
    let ticket = req.param('ticket')
    cas.validate(ticket, (err, status, username, obj) => {
        if (err) {
            console.error(`ticket error:${err}`)
            res.redirect('/500')
        }
        res.send({ code: 1, msg: '登录成功' })
    })
})

详细文档可以看下,cas模块作者的文档:https://github.com/kcbanner/node-cas

上一篇: 给你的express项目部署https

下一篇:用request-promise模块使接口请求变更简单

相关文章

评论

评论已关闭。