login()
Log in to Fauna.
Signature
login(password: String): Token | NullToken
login(password: String, ttl Time): Token | NullToken
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 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({ firstName: "John", lastName: "Doe", email: "john.doe@example.com" })
{ id: "401670797851099213", coll: Customer, ts: Time("2099-06-25T13:26:13.580Z"), firstName: "John", lastName: "Doe", email: "john.doe@example.com" }
-
Create a user credential, including the password:
Credentials.create({ document: Customer.byId("373273910203908129"), password: "sekret" })
{ id: "401670870807871565", coll: Credential, ts: Time("2099-06-25T13:27:23.170Z"), document: Customer("401670797851099213") }
-
Log in with a password:
let document = Customer.byId("401670797851099213") Credentials.byDocument(document)?.login("sekret")
{ id: "401670938431586381", coll: Token, ts: Time("2099-06-25T13:28:27.660Z"), secret: "fnEFkwWXIdAATQWTBTgpMABN6auwOik0lvs63zat7cATvEUvt1s", document: Customer("401670797851099213") }
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!