8. InfluxDB配置admin用户认证登陆

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8. InfluxDB配置admin用户认证登陆相关的知识,希望对你有一定的参考价值。

参考技术A

不管是yum安装,亦或者是docker安装的方式,influxdb默认安装完毕之后,并不会自带用户认证的功能,直接就可以进行访问的了。
情况如下:

或者curl直接查询出来数据,不需要用户认证,如下:

对于这种不设置防备的措施,总体来说,不是很好。

所以,下面来看看怎么设置用户认证。

基本命令:

实际操作如下:

默认情况下,influxdb的配置文件是禁用认证策略的,所以需要修改设置一下。

编辑配置文件 vim /etc/influxdb/influxdb.conf ,把 [http] 下的 auth-enabled 选项设置为 true 。

配置完毕之后,重启influxdb服务即可。

在配置启动认证以及重启influxdb之后,如果不使用admin用户登陆,则会报错如下:

这里已经报错提示需要权限验证: ERR: unable to parse authentication credentials

这里使用admin认证用户登陆访问一下,格式如下:

执行如下:

当配置了admin认证用户之后,进行http的api请求的时候就要带上用户名和密码的参数,不然无法执行,示例如下:

执行如下:
其中增加 ?pretty=true 可以将 json 展开显示。

当然设置了用户认证之后,写入数据的时候也要带上用户名以及密码 &u=username&p=password ,如下:

用户名密码写在URL中

用户名密码写在HTTP头Authorization选项

下面来执行一下:

查看插入后的influxdb数据,如下:

基于Express实现Passport用户名和密码登陆认证

Passport项目是一个基于Nodejs的认证中间件。

Passport可以根据应用程序的特点,配置不同的认证机制。本文将介绍,用户名和密码的认证登陆。

 

1.express项目安装这里就不多说了,可以去express中文网拉下项目;

http://www.expressjs.com.cn/

 

2.安装依赖;

npm install passport
npm install passport-local

passport-local

使用用户名和密码进行本地身份验证。通过插入Passport,本地身份验证可以集成到支持中间件(包括express )的应用程序或框架中 。

 

3.配置中间件;

var express = require(‘express‘);
var session = require(‘express-session‘);
var passport = require(‘passport‘);

app.use(passport.initialize());
app.use(passport.session());

引入依赖并且初始化。

4.验证策略

var LocalStrategy = require(‘passport-local‘);

// 用户名密码验证策略
passport.use(new LocalStrategy({
        usernameField: ‘username‘,
        passwordField: ‘password‘
    },
    function (name, password, done) {
        UserModel.findOne({ name: name }).then(function (result) {
            if (result != null) {
                if (result.password == password) {
                    return done(null, result);
                } else {
                    return done(null, false, { message: ‘密码错误‘ });
                }
            } else {
                return done(null, false, { message: ‘用户不存在‘ });
            }
        }).catch(function (err) {
            return done(null, false, { message: err.message });
        });
    }
));

5.session序列化与反序列化

验证用户提交的凭证是否正确,是与session中储存的对象进行对比,所以涉及到从session中存取数据,需要做session对象序列化与反序列化:

passport.serializeUser(function(user, done) {
  done(null, user.id);
});
passport.deserializeUser(function(id, done) {
  User.findById(id, function(err, user) {
    done(err, user);
  });
});

 

6.拦截请求

var express = require(‘express‘);
var router = express.Router();

var passport = require(‘passport‘);
// 登录认证
router.post(‘/login‘, function (req, res, next) {
    passport.authenticate(‘local‘, { successRedirect: ‘/‘, failureRedirect: ‘/login‘ })(req, res);
});

OK,大功告成。

  

以上是关于8. InfluxDB配置admin用户认证登陆的主要内容,如果未能解决你的问题,请参考以下文章

mongodb07---用户权限

django中后台admin我是自己写的,现在要用用户认证这块了,感觉他自带的认证功能比较好,如何使用呢

13.配置 influxDB 鉴权及 HTTP API 写数据的方法

华为交换机配置telnet用户名密码怎么更改

REST_FRAMEWORK加深记忆-加了用户登陆认证,自定义权限的API接口

JWT 认证 签发与校验token 多方式登陆 自定义认证规则反爬 admin密文显示