Add 14.4.md syntax highlighting

This commit is contained in:
vCaesar
2016-12-18 17:10:02 +08:00
parent 76188db3d6
commit 1e9897802f

View File

@@ -9,10 +9,12 @@ beego目前没有针对这三种方式进行任何形式的集成但是可以
## HTTP Basic和 HTTP Digest认证
这两个认证是一些应用采用的比较简单的认证,目前已经有开源的第三方库支持这两个认证:
github.com/abbot/go-http-auth
```Go
github.com/abbot/go-http-auth
```
下面代码演示了如何把这个库引入beego中从而实现认证
```Go
package controllers
@@ -45,22 +47,25 @@ beego目前没有针对这三种方式进行任何形式的集成但是可以
this.Data["Email"] = "astaxie@gmail.com"
this.TplNames = "index.tpl"
}
```
上面代码利用了beego的prepare函数在执行正常逻辑之前调用了认证函数这样就非常简单的实现了http authdigest的认证也是同样的原理。
## oauth和oauth2的认证
oauth和oauth2是目前比较流行的两种认证方式还好第三方有一个库实现了这个认证但是是国外实现的并没有QQ、微博之类的国内应用认证集成
```Go
github.com/bradrydzewski/go.auth
```
下面代码演示了如何把该库引入beego中从而实现oauth的认证这里以github为例演示
1. 添加两条路由
```Go
beego.RegisterController("/auth/login", &controllers.GithubController{})
beego.RegisterController("/mainpage", &controllers.PageController{})
```
2. 然后我们处理GithubController登陆的页面
```Go
package controllers
@@ -89,8 +94,9 @@ oauth和oauth2是目前比较流行的两种认证方式还好第三方有一
githubHandler.ServeHTTP(this.Ctx.ResponseWriter, this.Ctx.Request)
}
```
3. 处理登陆成功之后的页面
```Go
package controllers
@@ -126,7 +132,7 @@ oauth和oauth2是目前比较流行的两种认证方式还好第三方有一
this.Data["name"] = user.Name()
this.TplNames = "home.tpl"
}
```
整个的流程如下,首先打开浏览器输入地址:
![](images/14.4.github.png?raw=true)
@@ -147,7 +153,7 @@ oauth和oauth2是目前比较流行的两种认证方式还好第三方有一
## 自定义认证
自定义的认证一般都是和session结合验证的如下代码来源于一个基于beego的开源博客
```Go
//登陆处理
func (this *LoginController) Post() {
@@ -239,8 +245,9 @@ oauth和oauth2是目前比较流行的两种认证方式还好第三方有一
}
return true
}
```
有了用户登陆和注册之后,其他模块的地方可以增加如下这样的用户是否登陆的判断:
```Go
func (this *AddBlogController) Prepare() {
sess := globalSessions.SessionStart(this.Ctx.ResponseWriter, this.Ctx.Request)
@@ -252,7 +259,7 @@ oauth和oauth2是目前比较流行的两种认证方式还好第三方有一
}
this.Data["Username"] = sess_username
}
```
## links
* [目录](<preface.md>)
* 上一节: [表单及验证支持](<14.3.md>)