Browse Category: 后端

OAuth2.0 概念和使用

OAuth

OAuth(Open Authorization)

  • 2007 OAuth1.0
  • 2010 OAuth2.0

应用场景

开放第三方登录

工作原理

实现

三个重要步骤

第一步: 请求OAuth 登录页 获取 Request Token

Request Token URL – 未授权的令牌请求服务地址

请求登录页面时带有特定参数的 URL

第二步:用户使用账户登录并授权

redirect_uri 跳转会指定回调地址,并获取 code

第三部:获取 Access Token

User Authorization URL 用户授权的令牌请求服务地址

用户授权之后需要请求的一个带有特定参数的 URL

第四步:以 AccessToken 进行后续 API访问

AccessToken 过期刷新

Refresh Token 刷新 Access Token

User Authorization URL 请求中添加refersh token 参数

QQ三方登录 PHP 实战

所需条件

  • 三方平台账户
  • 公网 IP

参考

Virtualbox 终端命令

查看有哪些虚拟机

VBoxManage list vms

查看虚拟的详细信息

VBoxManage list vms --long

查看运行着的虚拟机

VBoxManage list runningvms

开启虚拟机在后台运行

VBoxManage startvm -type headless

开启虚拟机并开启远程桌面连接的支持

VBoxManage startvm -type vrdp

改变虚拟机的远程连接端口,用于多个vbox虚拟机同时运行

VBoxManage controlvm vrdpprot

关闭虚拟机

VBoxManage controlvm <box-name> acpipowerbutton

强制关闭虚拟机

VBoxManage controlvm poweroff

获取虚拟机IP

vboxmanage guestproperty get AMP /VirtualBox/GuestInfo/Net/0/V4/IP

显示虚拟机所有信息

vboxmanage guestproperty enumerate AMP

新建一个批处理文件(.bat文件)。 写上一句代码就可以了:

VBoxManage startvm VBoxName -type headless 把路路径和虚拟机名改成自己的就可以了

Git 使用笔记

初始化操作

初始化配置

初始化仓库

Git命令行创建新的本地仓库

在命令行中推送存在的本地库

创建新文件夹

查看文件内容

状态与差异

日志

回退与撤销

HEAD表示当前版本,HEAD^^表示前2各版本 HEAD~100表示前100各版本

回退到特定版本

git checkout --filename
撤销修改,如果暂存区没有该文件就从版本库提取文件

git reset HEAD filename
可以撤销暂存区的修改

文件删除与恢复

从版本库删除

从版本库恢复

远程仓库

SSH key

ssh-keygen -t rsa -C 'example@server.com' 生成ssh key

ssh -T git@github.com 测试ssh key添加成功

添加远程仓库

git remote add origin git_url 关联远程库

git clone git_url 克隆远程仓库

推送

git push -u origin master

-u 在远程和本地分支间建立联系,第一次建立即可

查看远程库:

origin为远程库的默认名称

更详细的信息:

推送该分支的所有东西到远程库:

如果推送其他分支:

如果多人协作有冲突,使用git pull,在本地合并,解决冲突,再推送

如果失败了,使用下面的命令:

抓取分支

git fetch 首先获取远程仓库最新状态

git checkout -b dev origin/dev 通过远程分支创建本地分支

git branch --track dev origin/dev 建立本地分支与远程分支的联系

分支

创建分支

git checkout -b dev 创建并切换分支

git branch -d <name> 删除分支

git branch -D <name> 删除未合并分支

分支合并

git merge dev 合并dev 到当前分支

git merge --no-ff -m 'merge with no-ff' dev 合并时禁用 Fast Forward

Bug 分支

修复Bug:创建Bug分支,修复再合并。当现场有工作时,可以使用 git stash 保存

标签

创建标签

git tag <name> 用于新建一个标签,默认为HEAD,也可以指定一个commit id

git tag -a <tagname> -m "introduce" 指定标签信息

git tag -s <tagname> -m "introduce" PGP签名

git tag 查看所有标签

git show tagname 显示标签详细信息

标签操作

git tag -d v0.1 删除标签

git push origin <tagname> 推送标签到远程

git push origin --tags 推送所有标签到远程

删除远程标签

git tag -d v0.9 先删除本地标签

git push origin :refs/tags/v0.9 删除远程分支

GitHub

自定义

git config --global color.ui true

.gitignore

github ignore

忽略文件原则:

  • 自动生成文件
  • 中间件
  • 敏感信息

别名

global 配置文件 ~/.gitconfig

搭建Git服务器

在Linux上,Ubuntu或Bebian,命令较简单

  1. 安装Git:

sudo apt-get install git

  1. 创建一个Git用户,运行git服务 ###

$ sudo adduser git

  1. 创建证书登录:

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个

  1. 初始化Git仓库:

选定一个目录为Git仓库,假定在/usr/sample.git,在/usr目录下输入

$ sudo git init --bare sample.git

该owner该为git:

$ sudo chown -R git:git sample.git

  1. 禁用shell登录:

安全考虑,第二步创建的git用户不允许登录shell,可以通过编辑/etc/passwd文件完成,找到类似下面一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell

  1. 克隆远程仓库:

$ git clone git@server:/usr/sample.git

剩下的使用和前面的一样

管理公钥:

团队很小,将每个人的公钥收集放在服务器的/home/git/.ssh/authorized_keys文件里就行。如果有几百人,可以使用Gitosis来管理公钥

管理权限: 防止员工窃取代码,可以使用Gitolite

参考


©2019 | 鄂ICP备18002823号-2 |鄂公网安备 42018502000885号