-
-
Save thanashyam/1662527 to your computer and use it in GitHub Desktop.
<?php | |
define('FRESHDESK_SHARED_SECRET','____Place your Single Sign On Shared Secret here_____'); | |
define('FRESHDESK_BASE_URL','http://{{your-account}}.freshdesk.com/'); //With Trailing slashes | |
function getSSOUrl($strName, $strEmail) { | |
$timestamp = time(); | |
$to_be_hashed = $strName . FRESHDESK_SHARED_SECRET . $strEmail . $timestamp; | |
$hash = hash_hmac('md5', $to_be_hashed, FRESHDESK_SHARED_SECRET); | |
return FRESHDESK_BASE_URL."login/sso/?name=".urlencode($strName)."&email=".urlencode($strEmail)."×tamp=".$timestamp."&hash=".$hash; | |
} | |
header("Location: ".getSSOUrl("User's Name","[email protected]")); | |
// This is not deprecated by Freshdesk. Simple SSO is not supported |
I am using this code but unable to login to freshdesk. Can someone help me. Thanks in advance.
function getSSOUrl($strName, $strEmail) {
$time = time();
return FRESHDESK_BASE_URL.
"login/sso/?name=".
urlencode($strName).
"&email=".
urlencode($strEmail).
"×tamp=".
$time.
"&hash=".
getHash($strName,$strEmail,$time);
}
function getHash($strName, $strEmail, $time) {
$to_be_hashed = $strName . FRESHDESK_SHARED_SECRET . $strEmail . $time;
return hash_hmac('md5', $to_be_hashed, FRESHDESK_SHARED_SECRET);
}
I am facing a unique problem with this, the code works with email that do not consists of dot (.) before the @ sign.
If the email has a dot (.) e.g. [email protected] then the login does not work .
I think it could be because of the urlencode but not sure.
Any inputs/ suggestions???
Thanks
Its works
An easier to read code with the help of PHP's http_build_query
:
http_build_query([
'name' => $strName,
'email' => $strEmail,
'timestamp' => $timestamp,
'hash' => hash_hmac('md5', $str_to_be_hashed, FRESHDESK_SHARED_SECRET),
], '', '&');
The whole code is in this fork:
https://gist.github.com/AlLoud/cfdea1aac2d158f288deaa71ed186037
How do you guys handle a user's email address change scenario?
Thanks for the feedback. That change matches what Freshdesk support also said.
I've updated my code and all tested to be working fine. Thanks for your assistance.
Oddly, my very original code (your original revision) also still works!