Rumah > pembangunan bahagian belakang > tutorial php > Laman web kitar semula terpakai yang dibangunkan menggunakan PHP menyepadukan fungsi log masuk sosial

Laman web kitar semula terpakai yang dibangunkan menggunakan PHP menyepadukan fungsi log masuk sosial

WBOY
Lepaskan: 2023-07-03 06:08:01
asal
1425 orang telah melayarinya

Tapak web kitar semula terpakai yang dibangunkan menggunakan PHP menyepadukan fungsi log masuk sosial

Dengan perkembangan Internet, permintaan untuk pasaran kitar semula terpakai telah menjadi semakin kukuh. Untuk memudahkan pengguna dan meningkatkan kemudahan dan populariti tapak web, kami boleh menggunakan PHP untuk membangunkan tapak web kitar semula terpakai dan menyepadukan fungsi log masuk sosial. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan tapak web kitar semula terpakai yang ringkas dan menggunakan fungsi log masuk sosial untuk memberikan pengguna pengalaman log masuk yang lebih mudah. Kami akan menggunakan penyepaduan log masuk sosial Facebook dan Google sebagai contoh.

1) Gunakan PHP untuk membangunkan tapak web kitar semula terpakai

Pertama, kita perlu menyediakan persekitaran PHP. Selepas pembinaan siap, kita boleh mula membangunkan laman web kitar semula terpakai. Di sini kami akan menggunakan corak MVC (Model-View-Controller) untuk membina tapak web kami. Ini ialah corak seni bina yang biasa digunakan yang membantu kami mengurus kod kami dengan lebih baik.

Kita boleh mencipta fail bernama index.php sebagai fail kemasukan laman web tersebut. Dalam fail ini, kami boleh menetapkan peraturan penghalaan untuk mengedarkan permintaan pengguna kepada pengawal yang berbeza.

<?php
// index.php

// 引入自动加载文件
require 'vendor/autoload.php';

// 实例化路由器
$router = new CoreRouter();

// 添加路由规则
$router->add('/', ['controller' => 'Home', 'action' => 'index']);

// 解析路由
$router->dispatch();
Salin selepas log masuk

Kemudian, kita boleh mencipta fail pengawal yang dipanggil "Home.php" yang mengendalikan permintaan pengguna.

<?php
// Controllers/Home.php

namespace AppControllers;

class Home
{
    public function index()
    {
        // 处理用户请求
    }
}
Salin selepas log masuk

Seterusnya, kita perlu mencipta fail "View.php" untuk memaparkan antara muka pengguna. Fail ini akan bertanggungjawab untuk memaparkan kandungan halaman web kami.

<?php
// Views/View.php

namespace AppViews;

class View
{
    public static function render($view, $args = [])
    {
        extract($args, EXTR_SKIP);

        $file = dirname(__DIR__) . "/Views/$view";

        if (is_readable($file)) {
            require $file;
        } else {
            throw new Exception("View not found: $view");
        }
    }
}
Salin selepas log masuk

2) Sepadukan fungsi log masuk sosial

Untuk memudahkan pengguna log masuk ke laman web kitar semula terpakai kami, kami boleh menyepadukan fungsi log masuk sosial Facebook dan Google. Pengguna boleh log masuk terus menggunakan akaun media sosial mereka dan mengakses kefungsian laman web.

Pertama, kita perlu mencipta akaun pembangun Facebook untuk mendapatkan kunci API, ID aplikasi dan kunci aplikasi yang berkaitan.

<?php
// config.php

return [
    'facebook' => [
        'app_id' => 'YOUR_APP_ID',
        'app_secret' => 'YOUR_APP_SECRET',
        'default_graph_version' => 'v2.10',
    ],
];
Salin selepas log masuk

Kemudian, kita boleh mencipta fail bernama "Facebook.php" yang merangkumi kod log masuk Facebook.

<?php
// Libraries/Facebook.php

namespace AppLibraries;

use FacebookFacebook;

class FacebookLogin
{
    private $fb;
    private $helper;

    public function __construct()
    {
        $config = require 'config.php';

        $this->fb = new Facebook([
            'app_id' => $config['facebook']['app_id'],
            'app_secret' => $config['facebook']['app_secret'],
            'default_graph_version' => $config['facebook']['default_graph_version'],
        ]);

        $this->helper = $this->fb->getRedirectLoginHelper();
    }

    public function getLoginUrl($redirectUrl)
    {
        return $this->helper->getLoginUrl($redirectUrl, ['email']);
    }

    public function getUser()
    {
        try {
            $accessToken = $this->helper->getAccessToken();
            $response = $this->fb->get('/me?fields=id,name,email', $accessToken);
            $user = $response->getGraphUser();
            return $user;
        } catch (Exception $e) {
            return null;
        }
    }
}
Salin selepas log masuk

Seterusnya, kita boleh menggunakan kelas log masuk Facebook ini dalam pengawal kita.

<?php
// Controllers/Home.php

namespace AppControllers;

use AppLibrariesFacebookLogin;

class Home
{
    public function index()
    {
        $fb = new FacebookLogin();
        $loginUrl = $fb->getLoginUrl('http://example.com/facebook-callback');

        AppViewsView::render('home.php', ['loginUrl' => $loginUrl]);
    }
}
Salin selepas log masuk

Akhir sekali, kita boleh mencipta fail paparan yang dipanggil "home.php" untuk memaparkan butang log masuk.

<!-- Views/home.php -->

<a href="<?php echo $loginUrl; ?>">使用Facebook登录</a>
Salin selepas log masuk

Begitu juga, kita boleh mencipta fail bernama "Google.php" untuk merangkum kod log masuk Google.

<?php
// Libraries/Google.php

namespace AppLibraries;

use GoogleClient;

class GoogleLogin
{
    private $google;

    public function __construct()
    {
        $this->google = new Client(['client_id' => 'YOUR_CLIENT_ID']);
    }

    public function getLoginUrl($redirectUrl)
    {
        $this->google->setRedirectUri($redirectUrl);
        $this->google->addScope('email');

        return $this->google->createAuthUrl();
    }

    public function getUser()
    {
        $code = $_GET['code'];
        $accessToken = $this->google->fetchAccessTokenWithAuthCode($code);
        $this->google->setAccessToken($accessToken);

        $service = new Google_Service_Oauth2($this->google);
        $user = $service->userinfo->get();

        return $user;
    }
}
Salin selepas log masuk

Kelas menggunakan pengawal log masuk Google.

<?php
// Controllers/Home.php

namespace AppControllers;

use AppLibrariesFacebookLogin;
use AppLibrariesGoogleLogin;

class Home
{
    public function index()
    {
        $fb = new FacebookLogin();
        $google = new GoogleLogin();

        $facebookLoginUrl = $fb->getLoginUrl('http://example.com/facebook-callback');
        $googleLoginUrl = $google->getLoginUrl('http://example.com/google-callback');

        AppViewsView::render('home.php', ['facebookLoginUrl' => $facebookLoginUrl, 'googleLoginUrl' => $googleLoginUrl]);
    }
}
Salin selepas log masuk

Tunjukkan butang log masuk Google dalam fail paparan.

<!-- Views/home.php -->

<a href="<?php echo $facebookLoginUrl; ?>">使用Facebook登录</a>
<a href="<?php echo $googleLoginUrl; ?>">使用Google登录</a>
Salin selepas log masuk

Dengan cara ini, kami telah melengkapkan laman web kitar semula terpakai yang ringkas dan menyepadukan fungsi log masuk sosial Facebook dan Google. Pengguna kini boleh log masuk menggunakan akaun media sosial mereka untuk pengalaman log masuk yang lebih mudah. Melalui contoh ini, kita dapat melihat bahawa membangunkan tapak web kitar semula terpakai menggunakan PHP dan menyepadukan log masuk sosial adalah proses yang agak mudah. Saya harap artikel ini membantu anda, dan saya berharap anda berjaya dalam pembangunan!

Atas ialah kandungan terperinci Laman web kitar semula terpakai yang dibangunkan menggunakan PHP menyepadukan fungsi log masuk sosial. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan