CustomerとMerchantの 2 つのエンティティにVapor AuthMiddlewareを使用しようとしています。
https://vapor.github.io/documentation/auth/request.html
let auth = AuthMiddleware(user: Customer.self) { value in
return Cookie(
name: "vapor-auth",
value: value,
expires: Date().addingTimeInterval(60 * 60 * 5),
secure: true,
httpOnly: true
)
}
しかし、ご覧のとおり、最初に追加されたミドルウェア (顧客) は、次のように追加した場合、2 番目 (マーチャント) に置き換えられました。
drop?.middleware.append(auth)
また
drop?.addConfigurable(middleware: auth, name: "auth")
したがって、リクエストからの資格情報でログインしようとすると:
guard let login = req.data["login"]?.string,
let password = req.data["password"]?.string else {
throw Abort.badRequest
}
let credentials = APIKey(id: login, secret: password)
try req.auth.login(credentials)
エラーがあります:
▿ Abort
▿ custom : 2 elements
- .0 : HTTP.Status.badRequest
- .1 : "Invalid credentials."
ただし、AuthMiddleware が他の AuthMiddleware に置き換えられた、最初に追加されたエンティティに対してのみスローします...
この問題を解決できるかどうか教えてください。ありがとう!