当前位置:首页 > 体育

github注册 用github账户登录你的网站

流程概述

使用github,或者其他任何三方网站账号登录你的网站,实现过程可以分解为几个步骤:

实现网站的自有登录系统向github注册网站应用用户首次选择github登录时,把用户的github账号绑定到在网站注册的账号。 OAuth授权

主要说明步骤2和3的实现,步骤2其实就是OAuth授权的过程。

OAuth是什么?

OAUTH协议为用户资源的授权提供了一个安全、开放、简单的标准。与以往的授权方式不同,OAUTH的授权不会让第三方接触到用户的账户信息(如用户名、密码),即第三方无需使用用户的用户名、密码即可申请用户资源的授权,因此OAUTH是安全的。

要从用户的角度理解这个定义,用户要用github账号登录其他第三方个人网站,最重要的是要保证第三方网站不能获取用户的git账号、密码等敏感信息。

OAuth的流程

访问github 1的OAuth身份验证。在github注册你自己的网站应用

登录github后设置>开发者设置>;OAuth应用程序>注册新的应用程序

2.使用github登录并跳转到GitHub用户授权页面。

Client_id必须传递其他参数,如有必要,例如,如果我需要在这里获取用户的邮箱信息,我添加一个scope=user:email

最终网址如下:

https://github.com/login/oauth/authorize?客户id =你的客户id & amp重定向_ uri = your _ website _ callback _ uri & amp;范围=用户:电子邮件

3.在上一步登录后,用户将跳转到您设置的重定向uri

并将带来一个代码参数,这是以后获取用户令牌的必要参数。

在获得这个代码参数之后,在您的业务代码中调用API https://github.com/login/oauth/access_token,并传入三个参数,client_id client_secret code,以获得一个access_token。

4.使用access_token获取github中用户的基本信息

调用https://api.github.com/user? Access _ token = Access _ token,可以得到基本的用户信息。

用户的基本信息有很多,第一步可以根据参数范围设置这些信息。

5.存储github用户信息并访问您自己的登录系统

将用户的github信息与您网站上的用户账号绑定后,实现了使用github登录您网站的功能。

实例,该站访问自己的登录系统的实现思路的借鉴

public functionhandleGithubCallback(){ $githubUser = Socialite::driver( 'github')->user(); $user = User::where( 'github_id', $githubUser->id)->first(); /*用户已经登陆*/ if(auth()->check()) { $currentUser = auth()->user(); /*当前用户已经绑定了Github账号*/ if($currentUser->github_id) { /*绑定的Github账号和返回的Github账号一致,直接返回,不用理会*/ if($currentUser->github_id == $githubUser->id) { returnredirect( $this->redirect); } /*绑定的Github账号和返回的Github账号不一致,返回错误信息*/ else{ returnredirect( $this->redirect)->withErrors( 'Sorry,you have bind a different github account!'); } } /*当前用户没有绑定Github账号,试图绑定*/ else{ /*返回的Github账号已经被绑定了,返回错误信息*/ if($user) { returnredirect( $this->redirect)->withErrors( 'Sorry,this github account has been bind to another account,is that you?'); } /*返回的Github账号没有被绑定,正常绑定*/ else{ if( $this->bindGithub($currentUser, $this->getDataFromGithubUser($githubUser))) { returnredirect( $this->redirect)->with( 'success', '绑定 Github 成功'); } returnredirect( $this->redirect)->withErrors( '绑定 Github 失败'); } } } /*用户没有登陆*/ else{ /*让绑定的用户直接登陆*/ if($user) { auth()->loginUsingId($user->id); returnredirect( $this->redirect)->with( 'success', '登录成功'); } /*一个全新的用户来了!!!尝试注册*/ else{ $githubData = $this->getDataFromGithubUser($githubUser); session()->put( 'githubData', $githubData); returnredirect()->route( 'github.register'); } } } nginx视频直播流开源扩展推荐

nginx公众账号也会推送好的文本,主要说后端技术,可以通过扫描或者搜索nginx来添加。

1.《github注册 用github账户登录你的网站》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《github注册 用github账户登录你的网站》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/tiyu/798428.html

上一篇

男人行 男人行不行,看腿就知道了

下一篇

e龙岩 e龙岩普惠金融服务来啦~ 有这些功能......

北京十一学校网站 一所来自未来的学校,北京十一学校龙樾实验中学 !

  • 北京十一学校网站 一所来自未来的学校,北京十一学校龙樾实验中学 !
  • 北京十一学校网站 一所来自未来的学校,北京十一学校龙樾实验中学 !
  • 北京十一学校网站 一所来自未来的学校,北京十一学校龙樾实验中学 !
浙商银行网站 浙商银行的供应链金融生意

浙商银行网站 浙商银行的供应链金融生意

《经济观察报》记者胡彦明,“企业财务结算90%是应收票据”,“我们企业还有20亿应收账款”。《经济观察报》记者近日在江苏报道时,听说了不同企业的流动性痛点。但浙商银行将应收账款转化为流动性,盘活企业“三角债”——能否解决企业痛点? 事实上,传统的现金支付结算方式在企...

android平板电脑 买Android平板电脑有前途吗?来看用户的真实想法

  • android平板电脑 买Android平板电脑有前途吗?来看用户的真实想法
  • android平板电脑 买Android平板电脑有前途吗?来看用户的真实想法
  • android平板电脑 买Android平板电脑有前途吗?来看用户的真实想法

qq消息记录怎么删除 手机QQ聊天记录删除了怎么恢复?99%的用户都不知道

  • qq消息记录怎么删除 手机QQ聊天记录删除了怎么恢复?99%的用户都不知道
  • qq消息记录怎么删除 手机QQ聊天记录删除了怎么恢复?99%的用户都不知道
  • qq消息记录怎么删除 手机QQ聊天记录删除了怎么恢复?99%的用户都不知道

华为手机客服 从痛点到爽点,华为如何以差异化服务带给用户尊贵感

  • 华为手机客服 从痛点到爽点,华为如何以差异化服务带给用户尊贵感
  • 华为手机客服 从痛点到爽点,华为如何以差异化服务带给用户尊贵感
  • 华为手机客服 从痛点到爽点,华为如何以差异化服务带给用户尊贵感

安迅物流信息管理系统 国美安迅物流:用心服务,打造以用户为中心的大件物流服务平台

  • 安迅物流信息管理系统 国美安迅物流:用心服务,打造以用户为中心的大件物流服务平台
  • 安迅物流信息管理系统 国美安迅物流:用心服务,打造以用户为中心的大件物流服务平台
  • 安迅物流信息管理系统 国美安迅物流:用心服务,打造以用户为中心的大件物流服务平台

jeep服饰官方网站 JEEP | 服装决定你的品味,面料决定服装的品质

  • jeep服饰官方网站 JEEP | 服装决定你的品味,面料决定服装的品质
  • jeep服饰官方网站 JEEP | 服装决定你的品味,面料决定服装的品质
  • jeep服饰官方网站 JEEP | 服装决定你的品味,面料决定服装的品质

国家粮油交易中心 国家粮食交易中心新版网站来了 交易会员登录指引看这里!

  • 国家粮油交易中心 国家粮食交易中心新版网站来了 交易会员登录指引看这里!
  • 国家粮油交易中心 国家粮食交易中心新版网站来了 交易会员登录指引看这里!
  • 国家粮油交易中心 国家粮食交易中心新版网站来了 交易会员登录指引看这里!