расширение пакета для входа с помощью сторонних сервисов в thinkphp 3.x
Убедитесь, что у вас установлен composer, иначе вы не сможете выполнить команду
composer
. Для получения информации посетите официальный сайт composer: http://www.phpcomposer.com/
composer require cocolait/sys_oauth
thinkphp 3.x версий автоматически не загружают composer, поэтому требуется некоторое ручное вмешательство.
// Загрузка composer
require './vendor/autoload.php';
// Загрузка файла входа ThinkPHP
require './ThinkPHP/ThinkPHP.php';
```### Конфигурация Config
```php
<?php
return [
//Настройки входа через QQ от Tencent
'SYA_AUTH_QQ' => [
'APP_KEY' => '', //Уникальный ключ приложения после регистрации
'APP_SECRET' => '', //Секретный ключ приложения после регистрации
'CALLBACK' => '', //Адрес обратного вызова приложения
],
//Настройки входа через Sina Weibo
'SYA_AUTH_SINA' => [
'APP_KEY' => '', //Уникальный ключ приложения после регистрации
'APP_SECRET' => '', //Секретный ключ приложения после регистрации
'CALLBACK' => '', //Адрес обратного вызова приложения
],
//Настройки входа через WeChat
'SYA_AUTH_WEIXIN' => [
'APP_KEY' => '', //Уникальный ключ приложения после регистрации
'APP_SECRET' => '', //Секретный ключ приложения после регистрации
'CALLBACK' => '', //Адрес обратного вызова приложения
]
];
Пример для ThinkPHP 3.2.3, требует PHP >= 5.3 или любую версию ThinkPHP 3.x
namespace Home\Controller;
use Think\Controller;
```class OauthController extends Controller {
//Страница входа
public function login($type = null){
if (!$type) $this->error('Ошибка параметров');
$_SESSION['login_http_referer'] = $_SERVER["HTTP_REFERER"];
$sns = \Cp\Sys\Oauth::getInstance($type);
redirect($sns->getRequestCodeURL());
}
//Обратный адрес авторизации
public function callback($type = null, $code = null){
if (!$type) $this->error('Ошибка параметров');
if (!$code) {
redirect(__ROOT__ . "/");
}
$sns = \Cp\Sys\Oauth::getInstance($type);
$extend = null;
//Получение access_token
$token = $sns->getAccessToken($code, $extend);
//Получение данных пользователя
if (is_array($token)) {
$user_info = \Cp\Sys\GetInfo::getInstance($type, $token);
} else {
var_dump($user_info);
}
}
}
# DEMO описание
> В качестве примера используется ThinkPHP 3. 2. 3
- Требования к окружению: PHP >= 5. 3
- Обработка контроллером: /demo/Application/Api/Controller
- Конфигурационный файл: /demo/Application/Common/Conf/config.php
> Запустите демо проект http://127.0.0.1/demo
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )