登录
首页 >  Golang >  Go问答

如何使用 go-guardian JWT 策略主动注销用户?

来源:stackoverflow

时间:2024-04-22 13:45:33 273浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《如何使用 go-guardian JWT 策略主动注销用户?》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我在我的项目中使用 go-guardian 和 jwt“基本承载”策略进行身份验证,效果非常好。当客户端没有令牌时,他使用自己的凭据登录并接收 jwt,然后他可以将其用于进一步的请求,如下所示:

$.ajax({
                    headers: {
                        'Authorization': 'Bearer ' + token
                    },
                    url: '/api/archive',
                    type: "post",
                    contentType: 'application/json; charset=utf-8',
                    data: JSON.stringify(searchData),
                    dataType: 'json',
                    success: onDataReceived,
                    error: onError
                });

但是,我想知道当客户端点击 /auth/logoff 路由时,如何在服务器端进行主动注销?当然,客户端可以简单地删除令牌,但服务器仍然会接受它。如何主动使服务器端的令牌失效或删除,以便我可以安全地说客户端必须重新进行身份验证?


解决方案


您可以保留一个单独的表 user_session,其中会话还包含用户的令牌。当端点被击中时,您检查令牌的签名以及该令牌是否在数据库中。

您还需要在用户登录时存储令牌,并在用户注销时删除此令牌。

每个用户需要多个会话的原因是因为用户可能使用多个令牌从不同的设备登录。要注销用户,您可以从 user_session 删除该特定会话,或者要从所有设备注销,您可以删除该用户的所有会话。

理论要掌握,实操不能落!以上关于《如何使用 go-guardian JWT 策略主动注销用户?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>