Beego 的执行过程以及jwt
Posted 一只小阿大:)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Beego 的执行过程以及jwt相关的知识,希望对你有一定的参考价值。
这里写目录标题
执行过程
Beego整体设计架构
Beego是最经典的MVC架构,也可以前后端分离(api),我这就是前后端分离的,那么我这只有Models 和 Controllers ,因为我第一次接触框架,我就很好奇Beego框架整个运行流程,先运行什么再运行什么。
我看到最多的就是Beego导入每个包都会执行init,如果是struct就不执行
然后我从五分钟理解golang的init函数找到了答案
导包的时候就会执行init,有点像c语言的define(宏定义),为社么init顺序不一样呢,根据你的包顺序来,比如我先导了router包,但router包又导了其他包,就套娃,先运行最底层包的init,让我想到了下图,之前看的时候还觉得没啥,现在能体会到了
main中beego run后初始化都完成了
那么后续的请求过程是怎么回事呢,这就跟MVC架构有关了
我这加了jwt,有个Token过滤方法
再去router路由找有没有你需要的路径
我路由设置这块用的是注释路由,然后再跳转到Controllers,看你什么请求就会执行哪个请求中的方法,这个请求就会涉及到restful
下面是登录,我用的是POST请求,生成了jwt通过ServerJSON接口将JSON格式数据传到页面给用户token
JWT
了解JWT(json web token)看下面文章
https://www.jianshu.com/p/576dbf44b2ae
官方文档
https://jwt.io/introduction/ jwt的
https://self-issued.info/docs/draft-ietf-oauth-json-web-token.html beegojwt的
go下载JWT
go get github.com/dgrijalva/jwt-go
go get github.com/adam-hanna/jwt-auth
输入指令后报错:go get: module github.com/dgrijalva/jwt-go: Get “https://proxy.golang.org/github.com/dgrijalva/jwt-go/@v/list”: dial tcp 172.217.160.113:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
设置环境变量换代理服务器即可
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
以上是关于Beego 的执行过程以及jwt的主要内容,如果未能解决你的问题,请参考以下文章
beego 导入一个普通的包都会执行init方法,如果是struct就不会执行