彭剑的博客

网络日记

  • 开源项目
  • 关于作者
  • 分类: Linux

    细讲oauth2.0

    在发展快速的互联网下,艾弗森贝博ballbet体育大部分应用都希望快速获取用户,但在应用初期,艾弗森贝博ballbet体育的用户都希望很方便的使用应用提供的服务,在大部分应用都有自己的会员体系,导致用户需要填写比较多的信息,这时候一般用户可能不太愿意提供这些信息,但有想使用当前的应用,在这个情况下,应用为了方便用户的使用自己的应用就开始接入各种第三方平台(微信,微博,QQ,支付宝,其他等等),在第三方平台获取用户信息。

    中间有这样的问题,如果我想拿到第三方网站上的用户信息,就需要用户填写第三方的账号和密码,但出于用户不了解当前应用所有用户是不会再本应用输入第三方平台的账号密码的。

    再这样的需求中,就诞生了oauth2.0,他为艾弗森贝博ballbet体育解决这个获取用户信息并且,应用要拿到用户的信息必须要用户同意才能通过第三方平台获取到用户信息,也可以理解为资源(图片,语音,视频,文件,等等信息)。

    在oauth2.0中有三个角色,用户,资源,应用,

    用户就是要是登录到应用的用户

    资源就是用户在第三方平台保留的资源,例如(QQ,微信,微博,支付宝)

    应用就是,企业或者个人要开放的应用

    在个过程中如果应用想要获取用户就要到第三方平台中申请一下APPID和APPKEY

    有了这些东西以后,艾弗森贝博ballbet体育就可以进行应用开放接入了

    艾弗森贝博ballbet体育通过第三方平台给的API接口就可以获得第三方平台发布的code,接下来艾弗森贝博ballbet体育就可以获取第三方平台颁发的Access_Token ,这个令牌,是艾弗森贝博ballbet体育接下来要获取用户在第三方平台存放的资源钥匙,接下来艾弗森贝博ballbet体育就可以获取到用户存在第三方平台的资源了,API可以查看具体的第三方平台接口,在带上前面获取的Access_Token,最终就会获取到第三方返回的用户数据,需要说明的是在获取code的前提是,应用回通过APPId加上回调地址,访问第三方服务提供的登录界面,上面会显示本次用户要授权那些信息给当前应用,如果用户同意授予,并且登录成功,第三方平台才会返回code,到回调地址上面,在回调地址接受到code在请求API,拿到Access_Token 。

     

     

    关于团队贝博app手机版利用git的webhook,部署项目

    最近刚刚入职一家初创企业,由于项目特殊项目贝博app手机版比较急,多人贝博app手机版导致每天都会出现多人文件丢失和错误的问题。

    艾弗森贝博ballbet体育先聊一下webhook是什么东西又能帮艾弗森贝博ballbet体育解决什么问题,在多人贝博app手机版的过程中艾弗森贝博ballbet体育可能职责明确,有前端和后端贝博app手机版人员,前端人就是艾弗森贝博ballbet体育看到的图片动画之内的东西,后端就是艾弗森贝博ballbet体育通过艾弗森贝博ballbet体育输入的信息给艾弗森贝博ballbet体育回应的内容,就是在艾弗森贝博ballbet体育的贝博app手机版过程中,艾弗森贝博ballbet体育后台渲染一个视图模板,前端根据PS图片实现效果,艾弗森贝博ballbet体育的交接点就是艾弗森贝博ballbet体育后台会给前端一些数据,如果一个人贝博app手机版就没问题,反正都是自己写,怎么方便怎么来,但是艾弗森贝博ballbet体育是团队贝博app手机版,可能同时有多人进行贝博app手机版,贝博app手机版的过程就会产生,同一个文件多人贝博app手机版编辑并且提交到艾弗森贝博ballbet体育的服务器,就会有有重复代码,或者删除或修改对方的代码,这样艾弗森贝博ballbet体育的git就诞生的,为艾弗森贝博ballbet体育解决多人同时贝博app手机版的过程与到的问题,在艾弗森贝博ballbet体育贝博app手机版能内网测的项目git,使用起来也不错误,可是问题有又来了,艾弗森贝博ballbet体育贝博app手机版的项目依赖第三方平台,而且艾弗森贝博ballbet体育又是多人贝博app手机版,这样艾弗森贝博ballbet体育原来只用git解决的问题,开始满足不了团队贝博app手机版项目了,这时候艾弗森贝博ballbet体育就考虑利用webhook实现自动部署代码,

    看名字就能大概猜到web就是网页的意思hook翻译就是钩子的意思,如果一起读就是web的钩子,艾弗森贝博ballbet体育知道由来了,艾弗森贝博ballbet体育在来看看艾弗森贝博ballbet体育要怎么实现这样的设计,首先艾弗森贝博ballbet体育在内网搭建一个git服务器,让内网的贝博app手机版人员内提交代码,这时候他只有提交,但是艾弗森贝博ballbet体育外网的怎么访问呢?让人通过FTP在上传吗?,这样的效率太低了,也不可行呀,那还不如用FTP上传算了,这时候艾弗森贝博ballbet体育的webhook开始出场了,webhook有多个触发的动作,就是艾弗森贝博ballbet体育每次提交代码在GIT服务器,会经过四步,

    第一步 git add -A

    第二步 git commit -m ‘本次提交的说明’

    第三步git pull origin master 拉取远程代码(就是git服务器上的代码)

    第四步git push origin master 提交代码到git服务器

    通过这几步艾弗森贝博ballbet体育发现等于如果艾弗森贝博ballbet体育贝博app手机版人员修改代码提交到git服务器的时候,艾弗森贝博ballbet体育就需要外网的服务器也马上同步最新的代码,所以艾弗森贝博ballbet体育在git项目中添加一个webhook动作就是git push origin master的时候,艾弗森贝博ballbet体育告诉线上服务器马上更新艾弗森贝博ballbet体育最新提交的代码,这个时候艾弗森贝博ballbet体育的本地贝博app手机版就和外网的服务同步了,艾弗森贝博ballbet体育就可以实时的查看艾弗森贝博ballbet体育修改的的效果了,这个过程因为艾弗森贝博ballbet体育外网的是内测地址是没有问题,如果是线上的正式项目不能这样干的(^~^)艾弗森贝博ballbet体育这里的测试服务器也在内网上面,所以其实艾弗森贝博ballbet体育是同步了内网的测试项目,正式项目艾弗森贝博ballbet体育是通过分支来解决的,在内网的测试地址完全测试没有问题艾弗森贝博ballbet体育才会合并到艾弗森贝博ballbet体育的线上项目,在合并的过程中,我才开始正式的同步线上代码,这个过程看似复杂,但是在这样多人贝博app手机版,是比较适合的。

    在linux下工作的经验

    做为一名一线码农,每天的贝博app手机版工作挺多了,但是有些事情在window下面不好,二者是卡吗、从去年的3月份开始就侧切抛弃了window,换回linux,在工作中与道的问题,简单列列

    第一个问题是如何安装软件呢

    艾弗森贝博ballbet体育的linux 有多个 通常是 yum install 软件名称 或者 apt-get install 软件名称 这是两不同系统版本的命令,建议自己去细看看,这里不多说

    艾弗森贝博ballbet体育安装了居多会想到如果我要卸载怎么办

    apt-get remove 软件名称

    yum remote 软件名称

    看了上面两好简单呀

    艾弗森贝博ballbet体育接下来可以面对问题就是权限问题了

    在window下基本不用考虑权限问题在linux下面艾弗森贝博ballbet体育必须了解权限问题,不理解权限艾弗森贝博ballbet体育没法进入贝博app手机版,最开始艾弗森贝博ballbet体育一般都是用超级管理员root这个权限,后面发现问题太多了,有写软件的是不能给超级权限的,所以导致系统无法启动