如何在环回中自动跳过访问令牌验证

Posted

技术标签:

【中文标题】如何在环回中自动跳过访问令牌验证【英文标题】:how to skip access token validation automatic in loopback 【发布时间】:2019-01-10 19:40:57 【问题描述】:

我有两个用户模型(A 和 B)和两个 accesstoken 模型,原始模型和自定义模型(基础:“AccessToken”), 我设法将每个用户模型的令牌保存在每个表(mysql)中。

但此时的问题是,loopback 仅在一个模型(表)中验证 accesstoken,我希望它在两个模型(表)中验证。

我正在尝试在默认模型(表)中进行环回验证之前自己进行第一次验证,但是如果我在第一次验证中发现访问令牌正确,我不知道如何自动跳过访问令牌验证。

有什么想法吗?

服务器/server.js

app.use(function(req, res, next) 

 const CustomAccessToken = app.models.CustomAccessToken;

 CustomAccessToken.resolve(req.headers.authorization, function(err, token)
     if(err)
        console.log(err);
     else
        console.log(token, "Correct!");
        // Skip default accesstoken valitation
     
     return next();
  );

);

【问题讨论】:

我已经解决了。 app.use(function(req, res, next) const adminaccesstoken = app.models.adminaccesstoken; var currentToken = req.headers.authorization; if (typeof currentToken != 'undefined') adminaccesstoken.resolve(currentToken, function(err, cToken) if(err) return next(err); if (typeof cToken != 'undefined') req.accessToken = cToken; return next(); ) ; else return next(); ); 您应该将此添加为答案 【参考方案1】:

我已经解决了。

app.use(function(req, res, next)  
  
  const adminaccesstoken = app.models.adminaccesstoken; 
  var currentToken = req.headers.authorization; 

  if (typeof currentToken != 'undefined')  
     
     adminaccesstoken.resolve(currentToken, function(err, cToken) 
        if(err) return next(err);  
        if (typeof cToken != 'undefined')  
          req.accessToken = cToken; 
         
        return next(); 
     );
 
    else  return next();  

);

【讨论】:

以上是关于如何在环回中自动跳过访问令牌验证的主要内容,如果未能解决你的问题,请参考以下文章

如何在环回 4 的 RestApplication 中使用 socket.io?

如何使用 openapi-to-graphql 在环回 4 中启用 graphql 订阅

使用 JWT 进行环回身份验证

ECDHE密码套件在环回连接上失败握手?

CAN 1 RX 在环回模式下工作,但不在正常模式下

环回中的 WinSock UDP 套接字创建顺序。