Laravel实现第三方登陆(演示github登陆)

1. 因为使用的是github账号登陆,所以先自己注册一个github账号,登陆成功后点击右上角的头像选择其中的setting;选择左边列表中的OAuth Apps,点击Register a new application,根据要求填入数据,其中的Homepage URL我直接填写本地项目首页地址                http://127.0.0.1:8000/Authorization callback URL填写http://127.0.0.1:8000//login/github(此为回调地址即在此处对从github获取回来的信息进行处理),点击下方Register application即可生成我们想要的Client Id Client Secret,第一步到此为止。

2. 使用composer安装第三方登录所需的依赖包,我使用的是安正超的overtrue/socialite这个包,在composer.json中加入

 "overtrue/socialite": "~1.1"

 然后执行

composer update

 等待安装完成即可

3. 创建两个路由和对应的控制器(根据自己情况命名)

Route::get(‘/github‘, ‘[email protected]‘);
Route::get(‘/login/github‘, ‘[email protected]‘);

 第一个路由用来让github进行信息验证,第二个路由用来进行回调信息处理(创建账号)。

4. 在控制器中创建对应的方法,根据我们引用的包在gibhub中给我们的readMe文件可以轻松填写控制器方法中的内容,github项目地址https://github.com/overtrue/socialite

(实际开发中出于信息安全考虑应该将config中的参数卸载env文件,然后引入config文件夹service.php中,最后通过config函数获取出来值)

protected $config = [
    ‘github‘ => [
	‘client_id‘     => ‘dbdb2095fa75454d5a9c‘,
        ‘client_secret‘ => ‘66ac7ef47dc5a9f0075bbb8576becdaa057e23ab‘,
        ‘redirect‘      => ‘http://127.0.0.1:8000/login/github‘,
    ],
];
public function github () {
    $socialite = new SocialiteManager($this->config);

    $response = $socialite->driver(‘github‘)->redirect();

    return $response;
} 
public function githubLogin () {
    $socialite = new SocialiteManager($this->config);

    $githubUser = $socialite->driver(‘github‘)->user();

     user::create([
	‘name‘ => $githubUser->getNickname(),
	‘email‘ => $githubUser->getEmail(),
	‘password‘ => bcrypt(str_random(16)),
    ]);

    return redirect(‘/‘);
}

 第二个方法中直接将从github获取的个人信息创建成了账户,(user表中应该有两个字段social_type和social_id,假如github登陆social_type存github,social_id存你在github中的用户id来判断唯一性)。

5. 在执行第一个路由验证github信息的时候可能出现报错

cURL error 60: SSL certificate: unable to get local issuer certificate

 此为SSL证书问题,解决方法:https://easywechat.org/zh-cn/docs/troubleshooting.html#curl-60-SSL-certificate-problem-unable-to-get-local-issuer-certificate

            或者   https://stackoverflow.com/questions/29822686/curl-error-60-ssl-certificate-unable-to-get-local-issuer-certificate

时间: 2024-11-05 22:06:18

Laravel实现第三方登陆(演示github登陆)的相关文章

joomla QQ登录,微信登录,微博登陆,人人登陆,明道登录的第三方登录

在joomla网站上集成QQ,微信,支付宝,人人,明道,短信,微博登录现在已经成为可能.只需要安装ZMAX程序人开发的ZMAX第三方登录组件,一键就可以让你的网站轻松集成当前流行的第三方登录. 国产开发 本扩展由ZMAX程序人团队开发,由南宁市程序人软件科技有限责任公司(工商注册号:450108000113385 1-1)运营.我们将持久对该扩展进行升级维护,对用户提供技术支持. 强大的功能 支持多种第三方登陆 QQ账号登陆,新浪微博账号登陆,支付宝账号登陆,人人账号登陆,明道账号登陆,微信账号

php判断是手机登陆还是PC登陆

// 判断是手机登陆还是PC登陆 function ismobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) return true; //此条摘自TPM智能切换模板引擎,适合TPM开发 if(isset ($_SERVER['HTTP_CLIENT']) &&'PhoneClient'==$_SERVER['HTTP_CLIENT']) return true; //

dede后台登陆又返回登陆界面怎么办

dede后台登陆又返回登陆界面......网上说的DATA等文件夹都有写入权限,试过好几种方法都不行! 其实最有可能的原因就是data文件夹的权限问题.大家可以通过FTP看下data文件的权限是否是775,也就是全部都有可读可写可执行的权限.记得把data文件的权限和sessions文件夹的权限改成777,用8Uftp软件进去以后,右键更改文件属性就可以了! 修改完这些以后记得用火狐或者遨游浏览器再登录下看看,360和IE记得要清空浏览器的缓存.第一步才是最重要的. .如果上面两步还不行的话就清

Ubuntu 卡在登陆界面循环登陆解决

中午的时候不小心把 /tmp 给弄坏了 , 晚上回来电脑就卡在登陆界面循环登陆一直进不去 调出tty1 删除 /tmp  新建/tmp后 改权限为 1777 重启 sudo rm -r /tmp sudo mkdir /tmp sudo chmod 1777 /tmp sudo reboot 重启后 Guest 账户可以正常使用 , 但主账户还是卡在登陆界面一直循环登陆 再调出tty1 删除了主账户 ~下的 .Xauthority 终于 恢复正常了 sudo rm .Xauthority

Net Core 使用外部登陆提供程序登陆的流程,以及身份认证的流程

原文出自Rui Figueiredo的博文<External Login Providers in ASP.NET Core> (本文很长) 摘要:本文主要介绍了使用外部登陆提供程序登陆的流程,以及身份认证的流程. 为了能够使用google.facebook.twitter.微博等外部登陆提供程序,从而避免创建本地账户以及电子邮件验证等繁琐步骤,我们一般会引用到外部登陆服务,将验证用户身份的任务委托给他们.外部验证最为流行的协议就是OAuth2和OpenId Connect. 在Asp.Net

SSH安全登陆原理:密码登陆与公钥登陆

SSH全称(Secure SHell)是一种以安全性闻名的应用层网络通信协议,用于计算机间的安全通信,是目前比较成熟的远程登陆解决方案. 它提供两种方法登陆: 1.密码登陆 2.公钥登陆 密码登陆 1.客户端填写用户名密码发起远程登陆 2.远端服务器收到登陆请求后,会将本地的一个公钥发送给客户端 3.客户端收到公钥后,将自己的登陆信息用远端服务器的公钥加密,并将加密后的结果发送给远端服务器. 4.远端服务器收到登陆密文后,用本地私钥解密,拿到登陆信息到数据库比较.登陆信息无误时,显示登陆成功.有

利用FaceBook实现第三方登陆(自定义登陆按钮,非官方按钮)并获取用户数据

最近公司要写集成登陆SDK,具体集成那些我就不说了,其中就包含需要使用facebook登陆自己的app,于是我苦心研究facebook,写完后发现各种问题,对于问题我当然去查阅官方文档看怎么解决,结果一查,我的天,SDK更新了,以前是两种方式loginButton和UserSettingsFragment,而对于两种方式来说都不适合我,因为我要写sdk供别人使用,所以别人要用那种登陆按钮需要用户自己定义,而不是用facebook自己的.对于两种方式来说,由于第二种不需要开发者参与,布局按钮都是f

使用友盟来实现第三方的分享,登陆

// 需要引入框架 // 1. SystemConfiguration.framework // 2. CoreGraphics.framework // 3. libsqlite3.dylib // 4. CoreTelephony.framework // 5. libstdc++.dylib, // 6. libz.dylib // 下载最新的SDK,http://dev.umeng.com/social/ios/sdk-download // 将UMSocial_Sdk-x.x.x的文件

Spring3 登陆演示

小结:Spring3开始,尽量使用注解,能不用XML配置就不用XML配置. jar包 aopalliance.jar commons-dbcp-1.4.jar commons-logging-1.2.jar commons-pool.jar hamcrest-core-1.3.jar jstl-1.2.jar jstl-impl.jar junit-4.11.jar log4j-1.2.17.jar log4j-api-2.2.jar log4j-core-2.2.jar mysql-conne