当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

userauth

koa user auth middleware
授权协议 MIT License
开发语言 JavaScript
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 华永新
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

koa-userauth

koa user auth abstraction layer middleware.

Install

$ npm install koa-userauth

Usage

koa-userauth is dependent on koa-session or koa-generic-session.

var koa = require('koa');
var userauth = require('koa-userauth');
var session = require('koa-generic-session');

var app = new koa();
app.keys = ['i m secret'];

app.use(session());
app.use(userauth({
  match: '/user',
  // auth system login url
  loginURLFormatter: function (url) {
    return 'http://login.demo.com/login?redirect=' + url;
  },
  // login callback and getUser info handler
  getUser: async ctx => {
    var token = this.query.token;
    // get user
    return user;
  }
}));

Arguments

If options.match or options.ignore is String instance,we will use path-match transfer it to Regex instance.

/**
 * User auth middleware.
 *
 * @param {Object} [options]
 *  - {String|Regex|Function(pathname, ctx)} match, detect which url need to check user auth.
 *      `''` empty string meaning match all, @see `path-match` package.
 *  - {String|Regex|Function(pathname, ctx)} ignore, detect which url no need to check user auth.
 *      If `match` exists, this argument will be ignored.
 *  - {Function(url, rootPath, ctx)} loginURLFormatter, format the login url.
 *  - {String} [rootPath], custom app url root path, default is '/'.
 *  - {String} [loginPath], default is '/login'.
 *  - {String} [loginCallbackPath], default is `options.loginPath + '/callback'`.
 *  - {String} [logoutPath], default is '/logout'.
 *  - {String} [userField], logined user field name on `this.session`, default is 'user', `this.session.user`.
 *  - {Async Function (ctx)} getUser, get user function, must get user info with `req`.
 *  - {Async Function (ctx, user)} [loginCallback], you can handle user login logic here,return [user, redirectUrl]
 *  - {Function(ctx)} [loginCheck], return true meaning logined. default is `true`.
 *  - {Async Function (ctx, user)} [logoutCallback], you can handle user logout logic here.return redirectUrl
 *  - {Function(ctx)} [getRedirectTarget], customize how to get the redirect target after login
 * @return {Async Function (next)} userauth middleware
 * @public
 */

Login flow

  1. unauth user, redirect to $loginPath?redirect=$currentURL
  2. user visit $loginPath, redirect to options.loginURLFormatter() return login url.
  3. user visit $loginCallbackPath, handler login callback logic.
  4. If user login callback check success, will set req.session[userField],and redirect to $currentURL.
  5. If login check callback error, next(err).
  6. user visit $logoutPath, set req.session[userField] = null, and redirect back.

userauth flow

Source image file

License

MIT

  • 因为libssh2_userauth_list()函数返回值有password、publickey、keyboard-interactive三种方式,具体根据返回值调用对应的认证函数 根据用户名和密码方式验证时,libssh2_userauth_list()返回值中检测不到password/PASSWORD原因服务端密码认证被禁用: 1.cd /etc/ssh 2.vi sshd_config将P

  • 背景 服务器信息: 服务器A:10.102.110.1 服务器B:10.102.110.2 需要从服务器A通过Sftp传输文件到服务器B。 应用项目中有一个功能,要通个关Sftp进行日志文件的传输,在部署的时候,服务器之间已经配置了免认证(密),也就sftp免密登录,但是部署完项目后,启动服务,在需要传输的时候还是报了下面的错误: com.jcraft.jsch.JSchException: Au

  •   There is 8 Linux servers configed with SSSD for AD user login auth. Please find the sssd, pam system_auth, password_auth & sshd config file from the attached. But the issue is I can not use all AD u

  • 在使用Jsch连接服务器的过程中,时常遇到 Auth fail 这个问题,表面的意思就是验证失败,经过搜索和实验,出现这个情况的原因可能是以下2条: 1.你所使用的用户不能进行远程登录,比如CentOS6,默认root不能进行远程登录 2.服务器的配置文件 /etc/ssh/sshd_config 中 GSSAPIAuthentication 的值是 yes 针对以上这2条原因,可以尝试用如下方法

  • 背景:使用sftp服务上传和下载文件时出现这个错误提示,导致无法正常去加载文件,网上找了一大圈也没找到这个问题解决方案。这个异常是sftp服务出了问题,我的解决方法是,删除原来创建的用户,然后重新创建同名用户,然后再吧原来的数据指定给新创建的用户,最后这个问题就解决了。 #如果已有用户,清除掉 userdel sftp1 rm -rf /home/sftp1 rm -rf /var/spool/m

  • 在创建Django模型时,有时候自带的auth_user表不符合我们自身的要求,这时就需要自定义父类的auth_user。 在models.py中创建新的用户类,并继承系统自带的AbstractUser from django.db import models from django.contrib.auth.models import AbstractUser class AdminUser

相关阅读

相关文章

相关问答

相关文档