有一个问题困扰好久,希望大大们解答

夜色镇歌 2015-07-07 03:43:45
最近准备做一个系统。其中有个独立的web api,所有的逻辑都通过web api处理,考虑到授权认证的问题,一般的做法好像都是传入用户名和密码 系统会返回一个token 然后拿着token访问所有的接口,可是为什么要这样做呢,何不每次请求都传入用户名和密码呢?
...全文
606 35 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
其实asp.net中的 aspnet_SessionID 就是这个东西。只不过我们叫做 Token 比较时髦了而已。
  • 打赏
  • 举报
回复
引用 33 楼 xuunique 的回复:
弄个密文存在数据库,每次比对密文(解密)是否可行?
你可以想想“密文” 是用来干什么的,就明白了。你的密文只是用来对比的对吧?那么这就不叫做密文,这叫签名,你给一个长串的随机(唯一)的token就行了。
xuunique 2015-07-12
  • 打赏
  • 举报
回复
弄个密文存在数据库,每次比对密文(解密)是否可行?
二孩子 2015-07-11
  • 打赏
  • 举报
回复
引用 7 楼 Z65443344 的回复:
这就好比你进入考场,必须先"验明正身",看你的准考证和身份证,还有你的脸,一致,才让进入考场 之后就不用每答一道题都要看一遍这些信息了
真特么精辟,笑死我了,哈哈哈哈
夜色镇歌 2015-07-10
  • 打赏
  • 举报
回复
引用 26 楼 zhuankeshumo 的回复:
[quote=引用 16 楼 a346729576 的回复:] [quote=引用 10 楼 starfd 的回复:] token一般是存缓存(或者内存数据库)的,当然不排除有人存数据库
引用 11 楼 sp1234 的回复:
存哪里不重要,想明白了当(众多)客户端应用与服务器进行跨进程消息调用的也许需求,能保证即使客户端运行100个小时也能正常访问token,甚至服务器即使用20秒钟重启之后客户端也还能用token正常访问,那么你随便存哪里都行。而且今天存A处、明天重构到B处,也没有说你。
token访问一次是不是需要把过期时间+20min?
引用 15 楼 zhuankeshumo 的回复:
[quote=引用 14 楼 a346729576 的回复:] [quote=引用 13 楼 zhuankeshumo 的回复:] 可以用rsa加密密码等信息后作为token 况且 密码每次都验证的话是多么不安全(如果没有加密或者https的话)而且要查数据库 即使加密的话 算法解密的话一般花的时间也长 可以用rsa算法生成一个token(12个小时)放在redis里面 ps:话说你现在在哪了
还在苏州[/quote]在哪家公司?[/quote] 离TC不远,你在哪里[/quote]刚毕业 试用期呢 卖菜的[/quote] 还招人不
yinlu5215211 2015-07-10
  • 打赏
  • 举报
回复
第一次传进来用户名和密码 返回给你一个token(ID) 来关系到你的User配置 加密并保存, 在以后的访问里, 你可以直接用你ID 来取得你自己的信息,这样 不用每次传入用户名和密码来查询你的 配置信息来降低 效率。
Q40355098 2015-07-10
  • 打赏
  • 举报
回复
好处理点,拿着用户名密码到处飞安全方面本身就是个问题
aa2310320 2015-07-10
  • 打赏
  • 举报
回复
概念性的东西 确实需要去专研。 加油, 好好提升
sinat_26759389 2015-07-09
  • 打赏
  • 举报
回复
这个,我不太懂呢。
newtee 2015-07-09
  • 打赏
  • 举报
回复
引用 16 楼 a346729576 的回复:
[quote=引用 10 楼 starfd 的回复:] token一般是存缓存(或者内存数据库)的,当然不排除有人存数据库
引用 11 楼 sp1234 的回复:
存哪里不重要,想明白了当(众多)客户端应用与服务器进行跨进程消息调用的也许需求,能保证即使客户端运行100个小时也能正常访问token,甚至服务器即使用20秒钟重启之后客户端也还能用token正常访问,那么你随便存哪里都行。而且今天存A处、明天重构到B处,也没有说你。
token访问一次是不是需要把过期时间+20min?
引用 15 楼 zhuankeshumo 的回复:
[quote=引用 14 楼 a346729576 的回复:] [quote=引用 13 楼 zhuankeshumo 的回复:] 可以用rsa加密密码等信息后作为token 况且 密码每次都验证的话是多么不安全(如果没有加密或者https的话)而且要查数据库 即使加密的话 算法解密的话一般花的时间也长 可以用rsa算法生成一个token(12个小时)放在redis里面 ps:话说你现在在哪了
还在苏州[/quote]在哪家公司?[/quote] 离TC不远,你在哪里[/quote]刚毕业 试用期呢 卖菜的
江南小鱼 2015-07-09
  • 打赏
  • 举报
回复
1、每次请求都输入用户名和密码,就要每次都验证用户名、密码是否匹配,频繁交互,这个有点多余 2、AccessToken(访问令牌),有一个有效期(默认好像是7200s),在有效期内,无需重复验证用户名和密码,一定程度上提示效率
nitaiyoucala 2015-07-09
  • 打赏
  • 举报
回复
判断token是否有效
AGOGD 2015-07-09
  • 打赏
  • 举报
回复
这个和淘宝api的授权是一样的。
JsonLu 2015-07-09
  • 打赏
  • 举报
回复
session对称讲的话可以理解为token
tyrival 2015-07-09
  • 打赏
  • 举报
回复
用session就行啦
newtee 2015-07-08
  • 打赏
  • 举报
回复
引用 14 楼 a346729576 的回复:
[quote=引用 13 楼 zhuankeshumo 的回复:] 可以用rsa加密密码等信息后作为token 况且 密码每次都验证的话是多么不安全(如果没有加密或者https的话)而且要查数据库 即使加密的话 算法解密的话一般花的时间也长 可以用rsa算法生成一个token(12个小时)放在redis里面 ps:话说你现在在哪了
还在苏州[/quote]在哪家公司?
qwertxp 2015-07-08
  • 打赏
  • 举报
回复
可以理解为session。生成token的主要目的是授权第三方使用。比如你想请你朋友用你的账号做一些特定的事,然后你又不想告诉你朋友你的密码,那么这个时候只需要给你朋友token就行了。
夜色镇歌 2015-07-08
  • 打赏
  • 举报
回复
引用 17 楼 Z65443344 的回复:
token访问一次是不是需要把过期时间+20min? 应该不需要.正常应该是类似session的机制,一直保持活跃就永远不过期 如果不通信了那么20min就过期 即使是一直通信也20min过期,又有什么关系,过期了就重新提交信息,获取新的token也没什么问题啊
session感觉也是这样的啊,只要活跃就是一个新的20min.... token这种机制我也没有在实际项目中用过,不知道一般是怎么处理的,忘记以前调用淘宝API的时候会不会调用着调用着就过期了,然后需要重新获取..可是正在用着突然就需要再获取一次会不会感觉怪怪的...
老李家的小二 2015-07-08
  • 打赏
  • 举报
回复
过来补补脑
於黾 2015-07-08
  • 打赏
  • 举报
回复
token访问一次是不是需要把过期时间+20min? 应该不需要.正常应该是类似session的机制,一直保持活跃就永远不过期 如果不通信了那么20min就过期 即使是一直通信也20min过期,又有什么关系,过期了就重新提交信息,获取新的token也没什么问题啊
加载更多回复(15)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧