public function MagicUrl::create in Open Social 10.2.x
Same name and namespace in other branches
- 8.9 modules/custom/social_magic_login/src/Service/MagicUrl.php \Drupal\social_magic_login\Service\MagicUrl::create()
- 8.5 modules/custom/social_magic_login/src/Service/MagicUrl.php \Drupal\social_magic_login\Service\MagicUrl::create()
- 8.6 modules/custom/social_magic_login/src/Service/MagicUrl.php \Drupal\social_magic_login\Service\MagicUrl::create()
- 8.7 modules/custom/social_magic_login/src/Service/MagicUrl.php \Drupal\social_magic_login\Service\MagicUrl::create()
- 8.8 modules/custom/social_magic_login/src/Service/MagicUrl.php \Drupal\social_magic_login\Service\MagicUrl::create()
- 10.3.x modules/custom/social_magic_login/src/Service/MagicUrl.php \Drupal\social_magic_login\Service\MagicUrl::create()
- 10.0.x modules/custom/social_magic_login/src/Service/MagicUrl.php \Drupal\social_magic_login\Service\MagicUrl::create()
- 10.1.x modules/custom/social_magic_login/src/Service/MagicUrl.php \Drupal\social_magic_login\Service\MagicUrl::create()
Create a magic login link.
Parameters
\Drupal\user\UserInterface $account: An object containing the user account.
string $destination: The uri of the final destination.
array $options: (optional) A keyed array of settings. Supported options are:
- langcode: A language code to be used when generating locale-sensitive URLs. If langcode is NULL the users preferred language is used.
Return value
\Drupal\Core\Url|null An url based on the magic login route.
Overrides MagicUrlInterface::create
File
- modules/
custom/ social_magic_login/ src/ Service/ MagicUrl.php, line 34
Class
- MagicUrl
- Service to generate one-time login links (a.k.a 'magic' #lama's).
Namespace
Drupal\social_magic_login\ServiceCode
public function create(UserInterface $account, string $destination, array $options) : ?Url {
if (!isset($account, $destination)) {
return NULL;
}
// Check if path isn't external.
if (!$this->pathValidator
->getUrlIfValidWithoutAccessCheck($destination)) {
return NULL;
}
// Get url options and prerequisites.
$timestamp = \Drupal::time()
->getRequestTime();
$lang_code = $options['langcode'] ?? $account
->getPreferredLangcode();
$url_options = [
'absolute' => TRUE,
'language' => \Drupal::languageManager()
->getLanguage($lang_code),
];
// Create url from route with the destination if it's set.
return Url::fromRoute('social_magic_login.login', [
'uid' => $account
->id(),
'timestamp' => $timestamp,
'hash' => user_pass_rehash($account, $timestamp),
'destination' => base64_encode($destination),
], $url_options);
}