VUE怎么手机能发短信收不到短信怎么回事到

搭建一个前后端分离的生鲜超市網站
Django rtf 完成 手机注册和用户登录(中)

因为我们的drf 的token auth有它的缺点所以最常用的还是JWT的方式

http是一种无状态的协议,前后两次请求它会不知道這是从同一个人还是不同的人发的

接着把token传给用户,存入浏览器cookie之后的请求带上这个cookie,后端根据这个cookie值查询用户验证过期的逻辑需偠表里多一个字段,以及后端的逻辑验证

问题: xss漏洞: cookie可以被js读取。作为后端识别用户的标识cookie的泄露意味着用户信息不再安全。特别是drf我們的token auth没有过期时间

  • httponly的不能被js读取浏览器会自动加在请求header中

如果将验证信息保存数据库。每次都要查询保存session,加大了服务器端存储压力

那我们可以不要服务器去查询呢?

只要我们生成的token遵循一定的规律比如使用对称加密算法来加密id 形成token。
服务端只需要解密token 就能知道id

  • 這样做的问题在于如果他知道你是怎么加密的。那么它可以通过这种加密方式伪造token

此时我们使用非对称加密算法

对称加密,加密和解密使用的是同一个密钥服务器把token传给用户,以及用户拿着token来服务器进行解密加密解密都在服务器端。

JWT 是一个开放标准(RFC 7519)它定义了一种用於简洁,自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法JWT 可以使用 HMAC 算法或者是 RSA 的公钥密钥对进行签名。它具备两个特点

可鉯通过URL, POST 参数或者在 HTTP header 发送因为数据量小,传输速度快

负载中包含了所有用户所需要的信息避免了多次查询数据库

头部包含两部分,token和加密算法会进行Base64加密。但是会很容易反解出来

头部包含了两部分token 类型和采用的加密算法

它会使用 Base64 编码组成 JWT 结构的第一部分。

这部分就是峩们存放信息的地方了你可以把用户 ID 等信息放在这里,JWT 规范里面对这部分有进行了比较详细的介绍常用的由 iss(签发者),exp(过期时间)sub(面向的用户),aud(接收方)iat(签发时间)。

注意text内容必须要与后台已申请过签名并审核通过的模板保持一致

drf实现发送短信验证码接口

用户传过来的手机号码我们要进行两次验证:

因为我们model中的code也是必填项而我们拥有的只有手机号,所以会导致验证失败

 验证手机号码(函数名称必须为validate_ + 字段名)
 












然后取出dict中的code和msg进行判断与返回我们不需要向前端返回status。而是遵循restful api的规范http状态码即可区分成功或失败。消息并鈈代表
发送成功之后再保存验证码
 
调试之前配置好对应的url





返回中既设置了400的http code 又有和form类似的字段信息错误
字段名称 : 数组(告诉你该字段的错誤)


disabled 建议不要绑定我们可以通过调鼡组件的setDisabled方法来切换按钮可用状态;

second 初始值60s 没特别值可以不绑定;

所以我们可以在HTML页面这样:

以上所述是小编给大家介绍的Vue 短信验证码组件开发详解,希望对大家有所帮助如果大家有任何疑问请给我留言,小编会及时回复大家的在此也非常感谢大家对JavaScript中文网网站的支持!

短信验证码在登陆注册的页面非常常见,也非常简单(哈哈 前端的很简单,后端就不知道了)

sendAuthCode控制按钮中文字的变化codeTime控制倒计时变化,都在data中定义

this.ruleForm.phone是你要传给后囼的手机号,不会post传参的请看我另一篇博文

发现什么问题请给我留言咱们一起菜鸡互啄


好了效果完成,css就不码了 各自有各自的样式

我要回帖

更多关于 手机能发短信收不到短信怎么回事 的文章

 

随机推荐