#api #oauth
Вопрос:
Пожалуйста, помогите мне, как я могу изменить размер изображения по умолчанию при регистрации пользователей? Размер по умолчанию составляет 96 пикселей. нажмите на ссылку: https://lh3.googleusercontent.com/a-/AOh14Gg3ztJH4RBTQTVqTHVI057AphSVuFd2u0YnGTCB0g=s96-c
Вот мой код:
1.
//login with google
public function login_with_google($g_user)
{
if (!empty($g_user)) {
$user = $this->get_user_by_email($g_user->email);
//check if user registered
if (empty($user)) {
if (empty($g_user->name)) {
$g_user->name = "user-" . uniqid();
}
$username = $this->generate_uniqe_username($g_user->name);
$slug = $this->generate_uniqe_slug($username);
//add user to database
$data = array(
'google_id' => $g_user->id,
'email' => $g_user->email,
'email_status' => 1,
'token' => generate_unique_id(),
'role' => "member",
'username' => $username,
'first_name' => $g_user->name,
'slug' => $slug,
'avatar' => $g_user->avatar,
'user_type' => "google",
'last_seen' => date('Y-m-d H:i:s'),
'created_at' => date('Y-m-d H:i:s')
);
if ($this->general_settings->vendor_verification_system != 1) {
$data['role'] = "vendor";
}
if (!empty($data['email'])) {
$this->db->insert('users', $data);
$user = $this->get_user_by_email($g_user->email);
$this->login_direct($user);
}
} else {
//login
$this->login_direct($user);
}
}
}
/**
* Connect with Google
*/
public function connect_with_google()
{
require_once APPPATH . "third_party/google/vendor/autoload.php";
$provider = new LeagueOAuth2ClientProviderGoogle([
'clientId' => $this->general_settings->google_client_id,
'clientSecret' => $this->general_settings->google_client_secret,
'redirectUri' => base_url() . 'connect-with-google',
]);
if (!empty($_GET['error'])) {
// Got an error, probably user denied access
exit('Got error: ' . htmlspecialchars($_GET['error'], ENT_QUOTES, 'UTF-8'));
} elseif (empty($_GET['code'])) {
// If we don't have an authorization code then get one
$authUrl = $provider->getAuthorizationUrl();
$_SESSION['oauth2state'] = $provider->getState();
$this->session->set_userdata('g_login_referrer', $this->agent->referrer());
header('Location: ' . $authUrl);
exit();
} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {
// State is invalid, possible CSRF attack in progress
unset($_SESSION['oauth2state']);
exit('Invalid state');
} else {
// Try to get an access token (using the authorization code grant)
$token = $provider->getAccessToken('authorization_code', [
'code' => $_GET['code']
]);
// Optional: Now you have a token you can look up a users profile data
try {
// We got an access token, let's now get the owner details
$user = $provider->getResourceOwner($token);
$g_user = new stdClass();
$g_user->id = $user->getId();
$g_user->email = $user->getEmail();
$g_user->name = $user->getName();
$g_user->avatar = $user->getAvatar();
$this->auth_model->login_with_google($g_user);
if (!empty($this->session->userdata('g_login_referrer'))) {
redirect($this->session->userdata('g_login_referrer'));
} else {
redirect(base_url());
}
} catch (Exception $e) {
// Failed to get user details
exit('Something went wrong: ' . $e->getMessage());
}
}
}
/**
* Get avatar image URL.
*
* @return string|null
*/
public function getAvatar()
{
if (array_key_exists('picture', $this->response)) {
return $this->response['picture'];
}
return null;
}
When registering a user via Google, the size of the profile photo is 96 pixels, you need to have a size of 500 pixels