ChangeLog

0.11.0 (2023-12-18)

Added

Changed

0.10.0 (2023-10-22)

Experimental reCaptcha support was added into email provider.

Set reblocks-auth/providers/email/processing:*recaptcha-site-key* and reblocks-auth/providers/email/processing:*recaptcha-secret-key* variables to try it.

Note: this version requires a new Reblocks, where was added get-remote-ip function.

0.9.0 (2023-10-01)

Email authentication provider now is able to use Resend API. Load reblocks-auth/providers/email/resend ASDF system to enable this feature.

0.8.0 (2023-08-04)

New authentication provider was added. It will send an authentication URL to user's email.

To make it work, you'll need to add this table to the database:

CREATE TABLE registration_code (
    id BIGSERIAL NOT NULL PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    code VARCHAR(255) NOT NULL,
    valid_until TIMESTAMP NOT NULL,
    created_at TIMESTAMPTZ,
    updated_at TIMESTAMPTZ
);

After that, do this to enable the auth provider:

(pushnew :email reblocks-auth:*enabled-services*)

Also, you'll need to provide credentials for working with Mailgun service. At the moment sending email works only via this service, but other methods can be implemented.

If you decide to go with default sending method, define email template like this:

(define-code-sender send-code ("Ultralisp.org <noreply@ultralisp.org>" url)
  (:p ("To log into [Ultralisp.org](~A), follow [this link](~A)."
       url
       url))
  (:p "Hurry up! This link will expire in one hour."))

Here is how to provide credentials to make sending work:

(setf mailgun:*domain* "mg.ultralisp.org")

(setf mailgun:*api-key*
      (secret-values:conceal-value
       "********************************-*********-*********"))

To supply an alternative sending method, define a function of two arguments: email and url. Set reblocks-auth/providers/email/models:*send-code-callback* variable to the value of this function.

0.7.0 (2022-06-07)

0.6.0 (2021-01-24)

0.5.1 (2019-06-24)

0.5.0 (2019-06-22)

0.4.0 (2019-06-20)

0.3.0 (2019-04-18)

0.2.0 (2019-04-17)

0.1.0 (2019-03-31)