Auth Helper#
The Auth package adds a convenience property on every request that makes it easy to authenticate, persist, and unauthenticate users.
Authentication#
Checking#
You can get the currently authenticated user.
let user = req.auth.authenticated(User.self)
You can check to see if the user is authenticated.
if req.auth.isAuthenticated(User.self) {
...
}
You can also assert that the user is authenticated.
let user = try req.auth.assertAuthenticated(User.self)
!!! note: A 403 Forbidden error will be thrown if the user is not authenticated.
Manual#
You can manually authenticate a user.
if let user = try User.find(1) {
req.auth.authenticate(user)
}
You can also unauthenticate the currently authenticated user.
try req.auth.unauthenticate()
!!! note:
If the user is Persistable, they will also be unpersisted.
Headers#
The helper can be used to access common authorization headers.
print(req.auth.header)
Token#
The header has additional conveniences for parsing out bearer tokens.
print(req.auth.header?.bearer)
Tip
You can use _authorizationBasic and _authorizationBearer to send tokens in the URL string.
Password#
And basic auth username + password.
print(req.auth.header?.basic)