اصفهان - گلپایگان - میدان بسیج - مجتمع تجاری پارسیان - طبقه اول انتهای راهرو خدمات ژوپین پ 136
031-57453161   09130246374   @ info[at]zhupin[dot]ir  



چگونه با استفاده از api گوگل ورود و ثبت نام برای سایت خود بسازیم


چگونه با استفاده از api گوگل ورود و ثبت نام برای سایت خود بسازیم؟

در بسیاری از وب سایت ها دیدید که در صفحه ثبت نام آن ها دکمه ورود یا ثبت نام توسط گوگل موجود است

عمل این دکمه بدین صورت می باشد که با زدن آن ، کاربر به اکانت گوگل خود لاگین میکند و گوگل کل اطلاعات این اکانت را برای شما در آدرس بازگشتی که بهش دادید میفرستد و شما از ان برای تشخیص هویت و یا بدست آوردن اطلاعات استفاده میکنید

یکی از مزیت های این کار این است که اگر شخصی پسورد خود را گم کرده باشد با زدن این دکمه و ورود به اکانت گوگل خود (ایمیل ثبت نام خود) بصورت موقت وارد سایت شده و پسورد خود را عوض میکند .

 

خوب میریم سراغ آموزش ثبت نام

 

ابتدا گیت زیر که حاوی کلاس های مورد نیاز است را دریافت فرمایید.

دانلود گیت

 

حال به https://console.developers.google.com/apis/library بروید برای ساخت api کد

در صفحه بالا روی Credentials  بزنید و بعد create Credentials و سپس OAuth client ID و بعد web application

در بخش name یک نام بر گزینید

در بخش Authorized redirect URIs شما میتونید چند آدرس برگشت بدید یعنی همون جایی که گوگل اطلاعات را برای شما میفرستد که در مثال ما من در http://localgost/gapi سایتمو درست کردم و میخوام در همین جا هم اطلاعاتو نشون بدم پس همینو میزارم .و سپس یک Client ID و یک Client secret میدهد که بعد نیاز داریم

 خوب حال با مثالی کار میکنیم زیرا ممکن است هر شخصی به نوعی ساختار سایت خود را داشته باشد و آدرس دهی و اینکلود ها برای همه فرق دارد

 

من تمام موارد بالا را که دانلود کردم در پوشه ای به نام google قرار دادم و کنار پوشه گوگل فایلی به نام index.php دارم

 

درون  فایل ایندکس .php

 

<?php
session_start(); //session start



require_once ('google/autoload.php');

$client_id = 'xxxxxxxxxxxxxxxxxx'; 
$client_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$redirect_uri = 'http://localhost/gapi/';

if (isset($_GET['logout'])) {
  unset($_SESSION['access_token']);
}

$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->addScope("email");
$client->addScope("profile");


$service = new Google_Service_Oauth2($client);



  
if (isset($_GET['code'])) {
  $client->authenticate($_GET['code']);
  $_SESSION['access_token'] = $client->getAccessToken();
  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
  exit;
}


 ************************************************/
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
  $client->setAccessToken($_SESSION['access_token']);
} else {
  $authUrl = $client->createAuthUrl();
}


echo '<div style="margin:20px">';
if (isset($authUrl)){ 

	echo '<div align="center">';
	echo '<h3>Login with Google -- Demo</h3>';
	echo '<div>Please click login button to connect to Google.</div>';
	echo '<a class="login" href="' . $authUrl . '">ورود با گوگل</a>';
	echo '</div>';
	
} else {
	
	$user = $service->userinfo->get(); 
	

	
	print_r($user);

	
}
echo '</div>';


?>

 در کد های بالا در ابنتدا مقادیر client_id و client_secret mو redirect_uri را درست کنید

اگر همه چیز درست باشد با اول با زدن دکمه به اکانت گوگل هدایت میشید و گوگل شما را به همین صفحه می آورد و اطلاعات کاربر را نشان میدهد

در مورد هر بخش سوالی داشتید و نیاز بیشتری به کمک داشتید کامت قرار بدهید

 


1396/04/04 18:54:19      طراحی سایت    1280 بار    اشتراک در تلگرام    http://www.zhupin.ir/post/24

نظرات

دیدگاهی یافت نشد

کد امنیتی :

نصف جهان؟