wavechao / lwapi

1 stars 1 forks source link

邮箱验证功能 #93

Closed Naituw closed 11 years ago

Naituw commented 11 years ago

增加邮箱验证功能,确保邮件发送到的地址是有效的

数据库已增加字段: email_verified TINYINT(1),此字段在本人的user结构返回 last_email_sent timestamp,此字段在本人的user结构返回

初步逻辑

新创建的用户,不管有没有email值,email_verified均为0,代表未验证。last_email_send为 0,代表没有发过验证邮件

手动验证

通过新接口 POST account/verify_email.json 来进行验证。

参数列表:无

这里验证的时候在last_email_sent记录最后一次验证的时间,如果验证间隔小于30分钟,则返回失败:“三十分钟内只能进行一次验证”; 如果当前email没有值,返回错误:“您未填写有效的Email地址” 如果当前email_verified已经为1,返回错误:“您的Email地址已经认证过了”

如果没有以上问题,返回200并发送邮件到用户邮箱。

返回结果:无论成功还是失败,object都返回当前登陆用户的最新user数据

自动验证

在用户调用"修改用户资料"接口时,如果邮箱有变化并且有值,则将email_verified 设为0,last_email_sent设为当前,并直接发送验证邮件。

邮件格式

标题:

请确认您的Email地址- "naituw@gmail.com" - Alpha 论文管理系统

内容(纯文本):

您好,我们想确定您就是 092011070,如果确实如此,请点击下面的链接:

https://lwapi.sinaapp.com/confirm_verification?token=e45fb17bd730bb0e1ad279bd0013df2c3a8d9f98&user=092011070

如果你并不是 092011070 或者没有请求验证Email,你可以忽略这封邮件

链接的token可以是存在kvdb中用来比对,成功后修改数据库,并直接在页面显示

您的Email地址已经成功验证

比对失败时:

验证失败!请尝试重新请求验证
Naituw commented 11 years ago

更新需求,增加 last_email_sent字段,为当前用户最后一次发送验证邮件的时间,随user结构返回。

Naituw commented 11 years ago

注意非当前用户的user结构不返回新增的两个字段 @wavechao

Naituw commented 11 years ago

email 发送间隔改为30分钟

wavechao commented 11 years ago

注意非当前用户的user结构不返回新增的两个字段 @wavechao 这个有点麻烦,都是哪个字段不输出是直接设置的,要这样子只能一个个弄到map里面去了

Naituw commented 11 years ago

@wavechao 增加了新接口的返回数据说明

Naituw commented 11 years ago

@wavechao 规范了接口命名

wavechao commented 11 years ago

如果当前email没有值,返回错误:“您未填写有效的Email地址” 如果当前email_verified已经为1,返回错误:“您的Email地址已经认证过了” 这两个错误码多少

Naituw commented 11 years ago

@wavechao 都 400就行了

wavechao commented 11 years ago

account/verify_email.json 这个接口要实现什么,就是手动请求发送一次邮箱验证?

Naituw commented 11 years ago

@wavechao 我忘了上面写过了,现在合并了,就是用于手动请求验证,一般是在 没有收到邮件 或者 管理员添加用户时设置了邮箱 时使用

wavechao commented 11 years ago

image

Naituw commented 11 years ago

<br/> 换行试试

wavechao commented 11 years ago

account/verify_email.json 验证已经实现,修改账号邮件验证也实现了,注意生成的验证码token是一次性的

Naituw commented 11 years ago

https://lwapi.sinaapp.com/account/verify_email.json

Auth:Basic MDkyMDExMDcwOmY5MzFjMzA4ZmM1YjYwYjQyMWMwOTk2OTkxMjgzOWRmZjI3NzY5NTdkOThiOGQyZjkxYzU1NGVkOGZjODBmNzg=

{"code":404,"message":"请求失败","object":null}

@wavechao

wavechao commented 11 years ago

image image 接口名我之前搞错了

Naituw commented 11 years ago

@wavechao 验证地址应该没有 .json 并且返回HTML的提示而不是JSON