社区
分析与设计
帖子详情
Api OAuth token是那个用户传进来的?
叫我官人、
2020-06-15 02:25:00
请问下 Api OAuth token保存在数据库 那用户传入token的时候你这么知道是那个用户传入进来的 用户传入的token是加密的 而解密的方法在刷新token中?
...全文
2614
6
打赏
收藏
Api OAuth token是那个用户传进来的?
请问下 Api OAuth token保存在数据库 那用户传入token的时候你这么知道是那个用户传入进来的 用户传入的token是加密的 而解密的方法在刷新token中?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
以专业开发人员为伍
2020-06-16
打赏
举报
回复
也就是后备的低效率的地方 --> 而不是是后备的低效率的地方。只“从数据库出发”是服务系统的低效瓶颈的根源。
以专业开发人员为伍
2020-06-16
打赏
举报
回复
“数据库”是个后备的持久化的地方,也就是说海量垃圾,按需加载的数据。任何一个专业的商用系统研发服务器端工程师,都应该将业务架构与高速的缓存对象集合上,也就是后备的低效率的地方。
以专业开发人员为伍
2020-06-16
打赏
举报
回复
为什么保存在数据库?如果你的服务器,或者服务器集群,如果它丢失了“不落地的”会话信息,那么相关的任何客户端就应该重新登录,重新申请会话认证了。
叫我官人、
2020-06-16
打赏
举报
回复
如果不验证 伪造一个token就可以进行修改你数据库里面的东西了 你说不用管?。。。。。。。。。。。。
北京.NET
2020-06-15
打赏
举报
回复
用户每次请求,带着这个token就可以,至于加密解密,用户这里不需要管,服务哪里自己处理就行
北京.NET
2020-06-15
打赏
举报
回复
用户登录,服务生成token返回给用户
用户
登录系统数据库表设计.pdf
⽤户登录系统数据库表设计 ⽤户登录系统数据库表设计 最近看了看公司后台⽤户登录系统的设计, ⽐较混乱, 主要还是因为URS和
Oauth
以及URS第三⽅这三个登录形式各不相同导致的。 下⾯着重介绍⼀下涉及到第三⽅登录中需要注意的问题 在⼀个新项⽬中, 如果是要建⽴⾃⼰的登录体系的话, 那么直接创建⼀个Users表,包含username和password两列,这样,就可以实现登录了: id " username " password " name等其他字段 ----+----------+----------+---------------- A1 " bob " a1b23f2c " ... A2 " adam " c0932f32 " ... 如果要让⽤户通过第三⽅登录,⽐如微博登录或QQ登录,怎么集成
进来
呢? 以微博登录为例,由于微博使⽤
OAuth
2协议登录,所以,⼀个登录⽤户会包含他的微博⾝份的ID,⼀个Access
Token
⽤于代表该⽤户访问微博的
API
和⼀个过期时间。 要集成微博登录,很多童鞋⽴刻想到把Users表扩展⼏列,记录下微博的信息: id " username " password " weibo_id " weibo_access_
token
" weibo_expires " name等其他字段 ----+----------+----------+----------+--------------------+---------------+---------------- A1 " bob " a1b23f2c " W-012345 " xxxxxxxxxx " 604800 " ... A2 " adam " c0932f32 " W-234567 " xxxxxxxxxx " 604800 " ... 加⼀个QQ登录Users表就⼜需要加3列,⾮常不灵活 那么我们需要对这个表进⾏拆分。当⽤户以任意⼀种⽅式登录成功后,我们读取到的总是Users表对应的⼀⾏记录,它实际上是⽤户的个⼈资料(Profile),⽽登录过程只是为了 认证⽤户(Authenticate),⽆论是本地⽤密码验证,还是委托第三⽅登录,这个过程本质上都是认证。 所以,如果把Profile和Authenticate分开,就⼗分容易理解了。Users表本⾝只存储⽤户的Profile, 其中ID为关联不同登录⽅式的外键。 id " name " birth等其他字段 ----+------+----------------- A1 " Bob " ... A2 " Adam " ... ⽽通过⽤户名⼝令登录可视为⼀种Authenticate的⽅式,利⽤LocalAuth表维护: id " user_id " username " password ----+---------+----------+----------- 01 " A1 " bob " a1b23f2c 02 " A2 " adam " c0932f32 通过微博登录可视为另⼀种Authenticate⽅式,利⽤
OAuth
表维护, 但是access_
token
⼀般情况也只有⼏个⼩时的时效, 所以存储它是没有意义的, 每次登录的时候去微博后台 验证⼀下客户端
传
来的
token
就⾏了。 如果⽤户只⽤了第三⽅登录, 那就拿第三⽅数据来填充刚才的User表即可。 id " user_id " weibo_id " ----+---------+----------+ 11 " A1 " W-012345 " 12 " A2 " W-234567 " 如果要添加另⼀种
OAuth
登录,⽐如QQ登录,那就再加⼀个列标⽰不同站点也就OK了, 但是要注意⽤户在不同登录⽅式的⽤户名和photo⼀般不⼀样, 所以也单独存起来 id " user_id "
oauth
_name "
oauth
_id " nick_name" photo" ----+---------+------------+----------+----------+------+ 11 " A1 " weibo " W-012345 " 12 " A2 " weibo " W-234567 " 13 " A1 " qq " Q-090807 " 14 " A2 " qq " Q-807060 " 通过这种⽅式, ⽆论⽤户采⽤哪种⽅式登录, 都可以锁定到⽤户的user_id。 下⾯再说⼀下⽹易的URS登录, 因为我们要直接采⽤⽹易通⾏证, 所以也就不需⾃⼰存储密码, 因此我们的架构应该设为User表 id " user_Email " username " birth ----+------------+----------
数据库设计:
用户
登录系统数据库表设计.pdf
数据库设计:⽤户登录系统数据库表设计 数据库设计:⽤户登录系统数据库表设计 ⽤户登录系统数据库表设计 ⽤户登录系统数据库表设计 最近看了看公司后台⽤户登录系统的设计, ⽐较混乱, 主要还是因为URS和
Oauth
以及URS第三⽅这三个登录形式各不相同导致的。 下⾯着重介绍⼀下涉及到第三⽅登录中需要注意的问题 在⼀个新项⽬中, 如果是要建⽴⾃⼰的登录体系的话, 那么直接创建⼀个Users表,包含username和password两列,这样,就可以实现登录了: id " username " password " name等其他字段 ----+----------+----------+---------------- A1 " bob " a1b23f2c " ... A2 " adam " c0932f32 " ... 如果要让⽤户通过第三⽅登录,⽐如微博登录或QQ登录,怎么集成
进来
呢? 以微博登录为例,由于微博使⽤
OAuth
2协议登录,所以,⼀个登录⽤户会包含他的微博⾝份的ID,⼀个Access
Token
⽤于代表该⽤户访问微博的
API
和⼀个过期时间。 要集成微博登录,很多童鞋⽴刻想到把Users表扩展⼏列,记录下微博的信息: id " username " password " weibo_id " weibo_access_
token
" weibo_expires " name等其他字段 ----+----------+----------+----------+--------------------+---------------+---------------- A1 " bob " a1b23f2c " W-012345 " xxxxxxxxxx " 604800 " ... A2 " adam " c0932f32 " W-234567 " xxxxxxxxxx " 604800 " ... 加⼀个QQ登录Users表就⼜需要加3列,⾮常不灵活 那么我们需要对这个表进⾏拆分。当⽤户以任意⼀种⽅式登录成功后,我们读取到的总是Users表对应的⼀⾏记录,它实际上是⽤户的个⼈资料(Profile),⽽登录过程只是为了 认证⽤户(Authenticate),⽆论是本地⽤密码验证,还是委托第三⽅登录,这个过程本质上都是认证。 所以,如果把Profile和Authenticate分开,就⼗分容易理解了。Users表本⾝只存储⽤户的Profile, 其中ID为关联不同登录⽅式的外键。 id " name " birth等其他字段 ----+------+----------------- A1 " Bob " ... A2 " Adam " ... ⽽通过⽤户名⼝令登录可视为⼀种Authenticate的⽅式,利⽤LocalAuth表维护: id " user_id " username " password ----+---------+----------+----------- 01 " A1 " bob " a1b23f2c 02 " A2 " adam " c0932f32 通过微博登录可视为另⼀种Authenticate⽅式,利⽤
OAuth
表维护, 但是access_
token
⼀般情况也只有⼏个⼩时的时效, 所以存储它是没有意义的, 每次登录的时候去微博后台 验证⼀下客户端
传
来的
token
就⾏了。 如果⽤户只⽤了第三⽅登录, 那就拿第三⽅数据来填充刚才的User表即可。 id " user_id " weibo_id " ----+---------+----------+ 11 " A1 " W-012345 " 12 " A2 " W-234567 " 如果要添加另⼀种
OAuth
登录,⽐如QQ登录,那就再加⼀个列标⽰不同站点也就OK了, 但是要注意⽤户在不同登录⽅式的⽤户名和photo⼀般不⼀样, 所以也单独存起来 id " user_id "
oauth
_name "
oauth
_id " nick_name" photo" ----+---------+------------+----------+----------+------+ 11 " A1 " weibo " W-012345 " 12 " A2 " weibo " W-234567 " 13 " A1 " qq " Q-090807 " 14 " A2 " qq " Q-807060 " 通过这种⽅式, ⽆论⽤户采⽤哪种⽅式登录, 都可以锁定到⽤户的user_id。 下⾯再说⼀下⽹易的URS登录, 因为我们要直接采⽤⽹易通⾏证, 所以也就不需⾃⼰存储密码, 因此我们的架构应该设为User表 id " user_Email " usernam
SpringCloud+
Oauth
2+Vue+ElementUI前后端分离快速上手项目实战开发
适用人群 Java开发人员, ...SpringBoot+
OAuth
2+Jwt+Swagger等,核心技术采用Nacos、Fegin、Ribbon、Gateway、Hystrix、JWT
Token
、Mybatis、SpringBoot、Redis等主要框架和中间件。SpringCloud整合详细如下:
oauth
2.0源码分析之
oauth
/
token
申请令牌
本期介绍的是在
oauth
2.0中 , 通过调用
oauth
/
token
接口 , 框架是如何给我们申请到JWT令牌的 , 内部做了些什么事情 ? 在分析源码之前 , 我们首先需要知道的是我们需要具备哪些调试条件 , 不然会发现许多奇奇怪怪的错误 (比如通过/
oauth
/
token
时出现401) 1.一张
oauth
2.0的内置表(
oauth
_client_details) 注意:这里的密码需要用Bcript加密 , 因为源码内部是用Bcript解密的 2.两把钥匙: 一本是后缀为jks的私钥 另一本是后缀为k
Oauth
2.0实现
token
刷新功能(二)
文章目录前言直接上代码总结 前言 之前写过一篇“
Oauth
2.0实现
token
刷新功能”,发现大家阅读的还是特别多,那个是基于Spring Cloud实现的刷新功能,现在将它改为基于普通过滤器实现
token
刷新。 直接上代码 基本思路还是跟之前一样,过滤器拦截请求验证
token
,
token
过期后请求单点登录服务器换取新的access_
token
和refresh_
token
,将两个
token
放到过滤器返回体的头部。从而不影响本次请求,同时还能在本次请求的过程中做到无痕刷新
token
。 @Override
分析与设计
13,190
社区成员
5,759
社区内容
发帖
与我相关
我的任务
分析与设计
.NET技术 分析与设计
复制链接
扫一扫
分享
社区描述
.NET技术 分析与设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章