[keycloak-user] Get magic link for users to login
Ilya Korol
llivezking at gmail.com
Tue Apr 18 21:49:39 EDT 2017
Hi recently i implemented almost same feature for our environment. I've
done it via custom Authenticator implementation. This authenticator is
injected in browser authentication flow as alternative execution just
before cookie execution, and check request link whether he should
authenticate user by this link. Here some snippet:
@Override
public void authenticate(AuthenticationFlowContext context) {
MultivaluedMap<String, String> queryParams =
context.getHttpRequest().getUri().getQueryParameters();
// If uri doesn't contain appropriate query params this flow is
not applicable,
// so we pass it by to other flow chain
if (!(queryParams.containsKey("marker") &&
queryParams.containsKey("userId"))) {
context.attempted();
return;
}
// Extract params from request
String userId = queryParams.getFirst("userId");
String marker = queryParams.getFirst("marker");
RealmModel realm = context.getSession().getContext().getRealm();
UserModel user =
context.getSession().users().getUserById(userId, realm);
// If user state doesn't match requirements this flow is not
applicable,
// so we pass it by to other flow chain
if (checkConditions(user, marker, otherStruff)) {
// User could be authenticated
context.setUser(user);
context.success();
} else {
context.attempted();
}
}
On 18.04.2017 19:09, Martin Johansson wrote:
> Hi!
>
> We want to achieve the following:
>
> Expose a REST endpoint where an authenticated client can retrieve a magic
> login link for a specific user. We have an ID in the attributes for the
> user which enables us to get the correct user.
>
> The reason for this is that we need to expose the possibility to send
> e-mails from other systems than Keycloak. We have other ways of composing
> the e-mails.
>
> So wanted final state is that a user can click a link in his e-mail client
> and be redirected to our app and be logged in.
>
> BR,
> Martin
>
> ---------- Forwarded message ----------
>> From: Ilya Korol <llivezking at gmail.com>
>> To: keycloak-user at lists.jboss.org
>> Cc:
>> Bcc:
>> Date: Fri, 14 Apr 2017 15:59:10 +1000
>> Subject: Re: [keycloak-user] Get magic link for users to login
>> Hi, could you explain more detailed what you want to achieve? As for my
>> team we also implemented custom rest endpoint, which send customized emails
>> to users. Check out org.keycloak.services.resources.admin.UsersResource
>> for details of default link constructing. (methods: resetPasswordEmail(),
>> executeActionsEmail(), sendVerifyEmail())
>>
>>
>> On 13.04.2017 17:54, Martin Johansson wrote:
>>
>>> Is it possible to retrieve the magic link that are sent by e-mail via the
>>> Java
>>> API? We have implemented an SPI with a REST interface and would like to
>>> get
>>> the link for usage in custom e-mails.
>>> Any hints which provider to be used is much appreciated.
>>>
>>> Regards,
>>> Martin
>>> _______________________________________________
>>> keycloak-user mailing list
>>> keycloak-user at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/keycloak-user
>>>
>> _______________________________________________
>> keycloak-user mailing list
>> keycloak-user at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/keycloak-user
>>
> _______________________________________________
> keycloak-user mailing list
> keycloak-user at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-user
More information about the keycloak-user
mailing list