ChangeLog
0.11.1 (2025-02-15)
Fixed
Email provider form rendering was fixed to work with Reblocks changes introduced in PR57.
0.11.0 (2023-12-18)
Added
reblocks-auth/core:render-login-pagegeneric-function was added allowing to make a custom. Widget classreblocks-auth/providers/email/processing:request-code-form,reblocks-auth/providers/email/processing:render-submit-buttongeneric-function,reblocks-auth/providers/email/processing:render-email-inputgeneric-function,reblocks-auth/providers/email/processing:form-css-classesgeneric-function andreblocks-auth/providers/email/processing:render-sent-messagegeneric-function were added to allow login page customizations.Added
reblocks-auth/core:*allow-new-accounts-creation*variable to control if new accounts can be registered.Added
reblocks-auth/models:*user-class*variable. This allows to make a custom user model with additional fields.
Changed
Now when user authenticates using email, we fill email column.
Function
reblocks-auth/providers/email/models:send-codenow acceptsSEND-CALLBACKargument. This argument can be used when you need to send login code with a custom email markup. For example, this way a special welcome email can be sent when a new user was added by a site admin.Function
reblocks-auth/providers/email/resend:make-code-sendernow accepts additional argumentBASE-URI.
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)
Added documentation and an example application.
0.6.0 (2021-01-24)
Added support for
secret-valuesinreblocks-auth/github:*secret*.
0.5.1 (2019-06-24)
Supported recent change of mito caused an error when searching a social user.
0.5.0 (2019-06-22)
Added a
reblocks-auth/models:change-emailfunction.
0.4.0 (2019-06-20)
Added a new variable
reblocks-auth/core:*login-hooks*.A variable
reblocks-auth/core:*enabled-services*was exported.A function
reblocks-auth/core:render-buttonswas exported.
0.3.0 (2019-04-18)
Now classes
reblocks-auth/models:userandreblocks-auth/models:social-profileare exported fromreblocks-auth/modelssystem.New function were added:
reblocks-auth/models:get-user-by-emailandreblocks-auth/models:get-user-by-nickname.
0.2.0 (2019-04-17)
Now only
user:emailscope is required for authentication via github.And
reblocks-auth/github:render-button,reblocks-auth/github:get-scopesfunctions was added to request more scopes if required.
0.1.0 (2019-03-31)
First version with GitHub authentication.