背景
最近手头一个项目需要实现用户在网站的第三方登录(微信和微博),后端框架laravel5.4。
实现过程以微信网页版第三方登录,其他于此类似,在此不做重复。
准备工作
网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。
在进行微信OAuth2.在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。
总结下来就是:
1.进入微信开放平台注册开发者账号
2.根据项目类型创建应用,再此我创建的是网站应用.
3.接入微信登陆功能,让用户可使用微信登录你的网站应用
4.获得AppID和AppSectet
到此微信第三方登录的准备工作就完成了。
授权流程说明
1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;
2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;
3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。
在框架中实现(laravel)
Laravel Socialite简介
除了传统的基于表单的登录认证外,Laravel 还可以通过Laravel Socialite 提供 OAuth 认证,目前支持的认证驱动包括 Facebook、Twitter、Google、LinkedIn、GitHub 和 Bitbucket。
安装相关依赖
composer require laravel/socialite
安装weixin-web
composer require socialiteproviders/weixin-web
注意网站实现微信登录需要的依赖包为socialiteproviders/weixin-web,如果是手机端App那么可以用socialiteproviders/weixin。
shanlei@shanlei-Lenovo-ideapad-110-15ISK:/var/www/html/zslm_back$ composer search socialiteproviders/weixin socialiteproviders/weixin Weixin OAuth2 Provider for Laravel Socialite socialiteproviders/weixin-web Weixin-Web OAuth2 Provider for Laravel Socialite socialiteproviders/weixin-web Weixin-Web OAuth2 Provider for Laravel Socialite socialiteproviders/weixin Weixin OAuth2 Provider for Laravel Socialite
相关配置
1. 设置app/config.php
添加providers:
'providers' => [ SocialiteProviders\Manager\ServiceProvider::class, ],
添加aliases:
'aliases' => [ 'Socialite' => Laravel\Socialite\Facades\Socialite::class, ],
2. 配置config/services.php
'weixinweb' => [ 'client_id' => env('WEIXIN_KEY'), 'client_secret' => env('WEIXIN_SECRET'), 'redirect' => env('WEIXIN_REDIRECT_URI'), ],
3. 设置app/Providers/EventServiceProvider.php
添加事件监听
use SocialiteProviders\Manager\SocialiteWasCalled; protected $listen = [ 'SocialiteProviders\Manager\SocialiteWasCalled' => [ 'SocialiteProviders\WeixinWeb\WeixinWebExtendSocialite@handle', ], ];
4. 添加路由
Route::get('auth/weixin', 'Auto\ThirdLogin\WeixinController@redirectToProvider'); Route::get('auth/weixin/callback','Auto\ThirdLogin\WeixinController@handleProviderCallback');
5. 编写WeixinController
<"text-align: center">常见错误
1. 微信授权回调域不符(redirect_uri不符),参见下面规范:"text-align: center">
2. 执行过程中出现一下错误:
exception 'Laravel\Socialite\Two\InvalidStateException'
in /example/vendor/laravel/socialite/src/Two/AbstractProvider.php:161解决:
通过stateless()方法禁止会话状态验证
Socialite::driver('weixinweb')->stateless()->user()总结
以上所述是小编给大家介绍的laravel5实现微信第三方登录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 魔兽世界wlk暗牧一键输出宏是什么 wlk暗牧一键输出宏介绍
- 群星.1996-红不让台语原唱2辑【福和唱片】【WAV+CUE】
- 郭书瑶.2009-爱的抱抱(EP)【种子音乐】【FLAC分轨】
- 郑瑞芬.1989-BE.MY.BABY【现代】【WAV+CUE】
- 花钱请人每周放30万只不咬人的蚊子 防治登革热传播
- 饭制《第一后裔》丧尸版弗蕾娜
- 贝克汉姆亲临!2024FC品类游戏嘉年华圆满落幕
- 「命轨爻错之翼」风之翼发放说明
- 《原神》前瞻特别节目回顾长图
- 米游币抽抽乐-原神专场现已开启!
- 黑鸭子2001《风情中国HQCD》[日本版][WAV+CUE]
- 陈杰洲1990-成人礼[滚石][WAV+CUE]
- MarkAanderud-HandsFree(2024)[24-44,1]FLAC
- 孙露《观心》1:1母盘直刻限量版[低速原抓WAV+CUE][361M]
- 钟志刚《汽车DJ玩主》[低速原抓WAV+CUE][1G]