Check out v4 of the Fauna CLI
v4 of the Fauna CLI is now in beta. The new version introduces enhancements to the developer experience, including an improved authentication workflow. To get started, check out the CLI v4 quick start. |
credential.login()
Log in to Fauna.
Description
The login()
method authenticates an identity in Fauna by providing the
password for a Credential
document. Attempts to login with an incorrect
password result in an error. Call credential.update()
to set a new password.
This method creates a token when it authenticates an identity.
Required privileges
To call login()
in a query, your access token must have a role with the
create
privilege for the Token
system collection. For example:
role manager {
...
privileges Token {
create
}
}
The built-in admin
and server
roles have this privilege.
User-defined functions (UDFs) can be assigned an optional role. If assigned,
this role supersedes the access token’s privileges. If a UDF includes login()
,
the UDF’s role must have the create
privilege for the Token
collection.
Examples
The following simplified sequence creates a user and associates credentials with the user, which can then be used to log in.
-
Create a user in the example
Customer
collection:Customer.create({ name: "John Doe", email: "john.doe@example.com", address: { street: "123 Main St", city: "San Francisco", state: "CA", postalCode: "12345", country: "United States" } })
{ id: "999", coll: Customer, ts: Time("2099-07-31T13:16:15.040Z"), cart: null, orders: "hdW...", name: "John Doe", email: "john.doe@example.com", address: { street: "123 Main St", city: "San Francisco", state: "CA", postalCode: "12345", country: "United States" } }
-
Create a user credential, including the password:
Credential.create({ document: Customer.byId("999"), password: "sekret" })
{ id: "412654692679549440", coll: Credential, ts: Time("2099-06-25T13:27:23.170Z"), document: Customer("999") }
-
Log in with a password:
let document = Customer.byId("999") Credential.byDocument(document)?.login("sekret")
{ id: "412654692933304832", coll: Token, ts: Time("2099-07-31T13:17:46.900Z"), document: Customer("111"), secret: "fn..." }
Is this article helpful?
Tell Fauna how the article can be improved:
Visit Fauna's forums
or email docs@fauna.com
Thank you for your feedback!