【问题标题】:Using JWT in Loopback Without Using Loopback's User Model在 Loopback 中使用 JWT 而不使用 Loopback 的用户模型
【发布时间】:2016-05-04 19:48:06
【问题描述】:

我们正在为我们的 REST 端点使用 Loopback,并且希望在不使用 Loopback User 模型的情况下实现 JWT。这意味着,我们希望自己使用jwt-simple 之类的令牌来验证对其余端点的每个调用。有没有办法让 Loopback 在每个入站请求上调用自定义身份验证函数并接受或拒绝请求?我们找到的所有解决方案都与 Loopback 的用户模型相关联,但我们有自己的用户模型。以下代码可能就足够了,但 Loopback 似乎覆盖了 '/api' 路由:

 app.use('/api', function(req,res,next) {
     // PERFORM CUSTOM VALIDATION GOES HERE. ACCEPT OR REJECT THE CALL.
     next();
 })

FOLLOWUP QUESTION #1 -- 使用 JS 在中间件中如何定义参数?为了在代码中执行身份验证,我们需要请求、响应、用户和/或令牌。

app.middleware('auth:before', auth(???????))

function auth(req, res, next) {
    console.log(req, res);
 }

跟进答案 #1 -- 这是解决方案:

app.middleware('auth:before', auth)

function auth(req, res) {
    console.log(req, res);
 }

后续问题 #2 -- 您实际上如何使用中间件拒绝访问? (上面的#1)。

【问题讨论】:

    标签: authentication jwt loopbackjs


    【解决方案1】:

    您可以定义一个中间件函数,然后将其注册到 middleware.json 以在 'auth:before' 或更早的阶段执行。

    https://docs.strongloop.com/display/APIC/Defining+middleware

    【讨论】:

    • 中间件js函数如何定义参数? (见:上面的后续问题)
    • 我们如何在上面的代码中实际“拒绝”访问?
    猜你喜欢
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多