![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go-web
文章平均质量分 79
本专栏为goWeb开发中遇到一些知识总结和问题解决专栏。
m旧裤子
热爱生活,热爱编程
展开
-
【golang】http.ListenAndServe源码解析
if err!= nil {return errListenAndServe监听TCP网络地址 srv.Addr,然后调用服务来处理传入连接的请求。第二层首先根据srv中Addr定义了监听信息,然后把监听对象ln作为srv(Server)对象调用Serve方法的参数。以上就是当调用接口时候ListenAndServe的大致流程。原创 2024-03-14 15:41:57 · 1257 阅读 · 2 评论 -
用户认证模式Cookie-Session、JWT-Token(gin框架实现)
在Web应用发展的初期,大部分采用基于Cookie-Session的会话管理方式客户端使用用户名、密码进行认证服务端验证用户名、密码正确后生成并存储Session,将SessionID通过Cookie返回给客户端客户端访问需要认证的接口时在Cookie中携带SessionID服务端通过SessionID查找Session并进行鉴权,返回给客户端需要的数据鉴于基于Session的会话管理方式存在上述的多个缺点,基于Token的无状态(服务端不存储信息)会话方式诞生了。原创 2023-07-24 18:03:18 · 480 阅读 · 0 评论 -
跨域资源共享(CORS)
跨域资源共享(英语:Cross-origin resource sharing,缩写:CORS),用于让网页的受限资源能够被其他域名的页面访问的一种机制。通过该机制,页面能够自由地使用不同源(英语:cross-origin)的图片、样式、脚本、iframes以及视频。一些跨域的请求(特别是Ajax)常常会被同源策略(英语:Same-origin policy)所禁止。原创 2023-07-16 21:00:18 · 875 阅读 · 0 评论 -
golang使用bcrypt包对密码进行加密
实现中bcrypt会使用一个加盐的流程以防御彩虹表攻击,同时bcrypt还是适应性函数,它可以借由增加迭代之次数来抵御日益增进的电脑运算能力透过暴力法破解。go语言库中,bcrypt只能做单向加密,而不能反向破解生成明文,但是可以对原密码和进行hash加密后的hash值进行比对判断是否相同,使用bcrypt进行加密,同一个密码每次生成的hash值都是不相同的。除了对数据进行加密,默认情况下,bcrypt在删除数据之前将使用随机数据三次覆盖原始输入文件,以阻挠可能会获得计算机数据的人恢复数据的尝试。原创 2023-07-16 21:57:42 · 921 阅读 · 0 评论 -
gin 中间件流程控制:Next()、 Abort()
Next应该只在中间件内部使用。它执行调用处理程序内部链中的挂起处理程序。通俗的说,就是中间件放行,当一个中间件代码执行到Next(),会先执行它之后的函数,最后再来执行完本函数。如果其中一个中间件响应了c.Abort(),后续中间件将不再执行,直接按照顺序走完所有的响应中间件。原创 2023-07-23 21:08:19 · 1431 阅读 · 1 评论 -
gin项目中集成swagger生成接口文档
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。需要注意的是,在Go 1.17以后版本开始,go get不推荐使用安装可执行文件。简单的来说,swagger是一款可以根据resutful风格生成的接口开发文档,并且支持做测试的一款中间软件。3、然后在main函数中导入刚刚生成的docs包,swag init生成后的路径。然后就可以在我们编写的api接口上配置参数生成我们的swagger文档了。,接下来就可以看到有api测试的swagger文档了。原创 2023-06-24 17:44:51 · 594 阅读 · 0 评论 -
【OAuth】OAuth2.0四种授权模式
开放授权(OAuth)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务器提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源。这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供的某些特定信息,而非所有内容。原创 2023-10-13 16:17:48 · 228 阅读 · 0 评论 -
【Casbin】一篇文章入门Casbin
Policy 就是一种定义,它界定了策略的含义。[policy_definition] //定义policy.csv存储到数据库中策略一般会存储到数据库,因为会有很多策略eg:在本例中,sub、obj和act代表经典的访问三元组:主题(访问实体)、对象(访问资源)和操作(访问方法)。但是,我们也可以自定义自己的请求格式。例如,如果不需要指定特定的资源,可以使用sub, act;如果有两个访问实体,可以使用。原创 2023-12-02 14:56:10 · 2359 阅读 · 0 评论