2
我嘗試使用蒸汽AuthMiddleware爲兩個實體:客戶和商人如何將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
)
}
但正如我看到的,第一個加入的中間件(客戶)由第二取代(商家)如果他們加上:
drop?.middleware.append(auth)
o [R
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取代...
請讓我知道如果有可能解決這個問題EM。 謝謝!
謝謝!你是對的。我只需要使用** drop.grouped(「customer」)。grouped(auth)** ** drop.addConfigurable(middleware:auth,name:「auth」)的** –