PHP code example of teamupdivision / saltid-provider
1. Go to this page and download the library: Download teamupdivision/saltid-provider library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
teamupdivision / saltid-provider example snippets
/**
* Redirect function to external call for authorization step
*
* @param Request $request
* @return RedirectResponse
*/
public function redirect(Request $request): RedirectResponse
{
$redirect = SaltId::driver('saltid')->redirect();
return $redirect;
}
/**
* Callback function for authorization and get user
*
* @param Request $request
* @return RedirectResponse
*/
public function callback(Request $request): RedirectResponse
{
$saltUser = SaltId::driver('saltid')->user();
$user = User::where('email',$saltUser->getEmail())->first();
if(!$user){
$user = new User;
$user->name = $saltUser->getName() ? $saltUser->getName() : $saltUser->getEmail();
$user->email = $saltUser->getEmail();
$user->password = bcrypt(123456);
$user->save();
}
Auth::login($user);
return redirect('/dashboard');
}
/**
* Redirect function to external call for authorization step
*
* @return JsonResponse
*/
public function redirect(): JsonResponse
{
$redirectTarget = SaltId::driver('saltid')->stateless()->redirect()->getTargetUrl();
return response()->json([
'data' => [
'redirectTarget' => $redirectTarget,
],
]);
}
/**
* Callback function for authorization and get user
*
* @return JsonResponse
*/
public function callback(): JsonResponse
{
try {
$saltUser = SaltId::driver('saltid')->stateless()->user();
} catch (Throwable) {
return response()->json([
'message' => 'Code expired',
], 401);
}
if (User::where('email', $saltUser->getEmail())->doesntExist()) {
User::create([
'name' => $saltUser->getName() ?? $saltUser->getEmail(),
'email' => $saltUser->getEmail(),
'password' => Hash::make('password'),
]);
}
return response()->json([
'data' => [
'type' => 'Bearer',
'access_token' => $saltUser->token,
'refreshToken' => $saltUser->refreshToken,
'expiresIn' => $saltUser->expiresIn,
],
]);
}