Laravel 5.3サードパーティ登録を実現する微信編
3382 ワード
0微信テストインタフェースの申請
微信公衆プラットフォーム開発者のドキュメントにアクセスし、開発-インタフェーステスト番号申請を開始し、関連資料申請をインタフェースに記入し、appidとappsecretを取得します.次の体験インタフェース権限テーブルで、「Web権限取得ユーザー基本情報」を見つけ、「ドメイン名の変更」をクリックします.ここにはURLではなくドメイン名(文字列)が記載されているので、
1関連ライブラリのインストール
まずcomposerに以下の内容を追加します.
以上のライブラリを
2 config/app.phpの設定
Providerの追加
Aliasの追加
3 config/services.phpの構成
微信インタフェースのappidとappsecretの設定
4 app/Providers/EventServiceProvider.phpの設定
イベントリスニングの追加
5ルーティングの追加
Laravel 5.3ルーティングについて以下の変更がある
By default, fresh Laravel 5.3 applications contain two HTTP route files in a new top-level routes directory.
routes/web.phpに次の2行を追加
6 WeixinController
コード実装は次のとおりです.
微信公衆プラットフォーム開発者のドキュメントにアクセスし、開発-インタフェーステスト番号申請を開始し、関連資料申請をインタフェースに記入し、appidとappsecretを取得します.次の体験インタフェース権限テーブルで、「Web権限取得ユーザー基本情報」を見つけ、「ドメイン名の変更」をクリックします.ここにはURLではなくドメイン名(文字列)が記載されているので、
http://
などのプロトコルヘッダを追加しないでください.テストインタフェースではip(実測用ipでは問題があるのでドメイン名を推奨)を書くことができますが、携帯電話でテストするときはapacheの権限をペアに設定することに注意してください.注意ルートディレクトリと現在のプロジェクトのディレクトリ権限は、許可を設定します.以下は参考設定です. #www
ServerName localhost
DocumentRoot D:/site
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted #
DocumentRoot "d:/site/xxx/public" #
ServerName dev.xxx.com
ServerAlias *.xxx.com
ErrorLog "logs/dev.xxx.com-error.log"
CustomLog "logs/dev.xxx.com-access.log" common
Options Indexes FollowSymLinks
AllowOverride all
Order Allow,Deny
Allow from all
Require all granted #
Satisfy any
1関連ライブラリのインストール
まずcomposerに以下の内容を追加します.
"require": {
"laravel/socialite": "^2.0",
"socialiteproviders/weixin": "3.0.*"
},
以上のライブラリを
composer install
でインストールします.2 config/app.phpの設定
Providerの追加
'providers' => [
SocialiteProviders\Manager\ServiceProvider::class,
],
Aliasの追加
'aliases' => [
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],
3 config/services.phpの構成
微信インタフェースのappidとappsecretの設定
'weixin' => [
'client_id' => env('WEIXIN_KEY'),
'client_secret' => env('WEIXIN_SECRET'),
'redirect' => env('WEIXIN_REDIRECT_URI'),
],
4 app/Providers/EventServiceProvider.phpの設定
イベントリスニングの追加
use SocialiteProviders\Manager\SocialiteWasCalled;
protected $listen = [
SocialiteWasCalled::class => [
\SocialiteProviders\Weixin\WeixinExtendSocialite::class,
],
];
5ルーティングの追加
Laravel 5.3ルーティングについて以下の変更がある
By default, fresh Laravel 5.3 applications contain two HTTP route files in a new top-level routes directory.
routes/web.phpに次の2行を追加
Route::get('auth/weixin', 'Auth\WeixinController@redirectToProvider');
Route::get('auth/weixin/callback', 'Auth\WeixinController@handleProviderCallback');
6 WeixinController
コード実装は次のとおりです.
redirect();
}
public function handleProviderCallback(Request $request)
{
$user_data = Socialite::with('weixin')->user();
//todo whatever
}
}