2
私は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
)
}
しかし、私は見るように、最初に追加のミドルウェア(顧客が)(第2に置き換えられました加盟店):
drop?.middleware.append(auth)
私はリクエストから資格情報でログインしようとした場合、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は他のAuthミドルウェアに置き換えられました...
このproblを解決できるかどうかを教えてくださいem。 ありがとう!あなたはグループの内部に置く(ととのエンドポイントを作成するためにauthed
を使用)AuthMiddleware()
を使用します
drop.group(AuthMiddleware()) { authed in
authed.get("endpoint") { req in
return ""
}
}
何か:
ありがとうございました!あなたが正しいです。 ** drop.addConfigurable(ミドルウェア:auth、名前: "auth")**の** inted ** ** drop.grouped( "customer")を使用する必要があります。 –