model

package
v0.0.0-...-bf0c33e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2017 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNotFound = errors.New("item not found") // 所有的没有找到的都返回这个错误
View Source
var PasswordSalt = NewSalt() // 无主地 salt, 用于安全授权

Functions

func BindEmail

func BindEmail(userId int64, email string) (err error)

绑定邮箱(一般在认证后进行操作).

调用该函数前, 请确认:
1. 该用户存在并且 verified
2. 该用户未绑定邮箱
3. 该邮箱未绑定用户

func BindEmailUserTo

func BindEmailUserTo(toUserId, userId int64) (err error)

绑定邮箱新注册账户到指定账户, 密码以指定账户为准.

调用该函数前, 请确认:
1. toUserId != userId
2. toUserId 存在并且 verified
3. userId 存在并且没有 verified
4. toUserId 未绑定邮箱
5. userId 是邮箱新注册账户

func BindPhone

func BindPhone(userId int64, phone string) (err error)

绑定手机(一般在认证后进行操作).

调用该函数前, 请确认:
1. 该用户存在并且 verified
2. 该用户未绑定手机
3. 该手机未绑定用户

func BindPhoneUserTo

func BindPhoneUserTo(toUserId, userId int64) (err error)

绑定手机新注册账户到指定账户, 密码以指定账户为准.

调用该函数前, 请确认:
1. toUserId != userId
2. toUserId 存在并且 verified
3. userId 存在并且没有 verified
4. toUserId 未绑定手机
5. userId 是手机新注册账户

func BindQQ

func BindQQ(userId int64, openid string) (err error)

绑定QQ(一般在认证后进行操作).

调用该函数前, 请确认:
1. 该用户存在并且 verified
2. 该用户未绑定QQ
3. 该QQ未绑定用户

func BindQQUserTo

func BindQQUserTo(toUserId, userId int64) (err error)

绑定QQ新注册账户到指定账户, 密码以指定账户为准.

调用该函数前, 请确认:
1. toUserId != userId
2. toUserId 存在并且 verified
3. userId 存在并且没有 verified
4. toUserId 未绑定QQ
5. userId 是QQ新注册账户

func BindWechat

func BindWechat(userId int64, openid string) (err error)

绑定微信(一般在认证后进行操作).

调用该函数前, 请确认:
1. 该用户存在并且 verified
2. 该用户未绑定微信
3. 该微信未绑定用户

func BindWechatUserTo

func BindWechatUserTo(toUserId, userId int64) (err error)

绑定微信新注册账户到指定账户, 密码以指定账户为准.

调用该函数前, 请确认:
1. toUserId != userId
2. toUserId 存在并且 verified
3. userId 存在并且没有 verified
4. toUserId 未绑定微信
5. userId 是微信新注册账户

func BindWeibo

func BindWeibo(userId int64, openid string) (err error)

绑定微博(一般在认证后进行操作).

调用该函数前, 请确认:
1. 该用户存在并且 verified
2. 该用户未绑定微博
3. 该微博未绑定用户

func BindWeiboUserTo

func BindWeiboUserTo(toUserId, userId int64) (err error)

绑定微博新注册账户到指定账户, 密码以指定账户为准.

调用该函数前, 请确认:
1. toUserId != userId
2. toUserId 存在并且 verified
3. userId 存在并且没有 verified
4. toUserId 未绑定微博
5. userId 是微博新注册账户

func EncryptPassword

func EncryptPassword(password, salt []byte) []byte

func NewPasswordTag

func NewPasswordTag() string

func NewSalt

func NewSalt() []byte

func SetNickname

func SetNickname(userId int64, nickname string) (err error)

修改昵称

func SetPassword

func SetPassword(userId int64, password, salt []byte) (err error)

修改密码

func UnbindEmail

func UnbindEmail(userId int64) (err error)

解绑邮箱认证.

调用该函数前, 请确认:
1. 该用户存在并且 verified
2. 该用户除了邮箱认证还有别的认证

func UnbindPhone

func UnbindPhone(userId int64) (err error)

解绑手机认证.

调用该函数前, 请确认:
1. 该用户存在并且 verified
2. 该用户除了手机认证还有别的认证

func UnbindQQ

func UnbindQQ(userId int64) (err error)

解绑QQ认证.

调用该函数前, 请确认:
1. 该用户存在并且 verified
2. 该用户除了QQ认证还有别的认证

func UnbindWechat

func UnbindWechat(userId int64) (err error)

解绑微信认证.

调用该函数前, 请确认:
1. 该用户存在并且 verified
2. 该用户除了微信认证还有别的认证

func UnbindWeibo

func UnbindWeibo(userId int64) (err error)

解绑微博认证.

调用该函数前, 请确认:
1. 该用户存在并且 verified
2. 该用户除了微博认证还有别的认证

func UpdateEmail

func UpdateEmail(userId int64, email string) (err error)

更新绑定邮箱

调用该函数前, 请确认:
1. 该用户存在, 并且 verified
2. 该用户已经绑定邮箱

func UpdatePhone

func UpdatePhone(userId int64, phone string) (err error)

更新绑定手机

调用该函数前, 请确认:
1. 该用户存在, 并且 verified
2. 该用户已经绑定手机

func UpdateQQ

func UpdateQQ(userId int64, openid string) (err error)

更新绑定QQ

调用该函数前, 请确认:
1. 该用户存在, 并且 verified
2. 该用户已经绑定QQ

func UpdateWechat

func UpdateWechat(userId int64, openid string) (err error)

更新绑定微信

调用该函数前, 请确认:
1. 该用户存在, 并且 verified
2. 该用户已经绑定微信

func UpdateWeibo

func UpdateWeibo(userId int64, openid string) (err error)

更新绑定微博

调用该函数前, 请确认:
1. 该用户存在, 并且 verified
2. 该用户已经绑定微博

func VerifyEmail

func VerifyEmail(userId int64) (err error)

确认邮箱注册新账户

func VerifyPhone

func VerifyPhone(userId int64) (err error)

确认手机注册新账户

func VerifyQQ

func VerifyQQ(userId int64) (err error)

确认QQ注册新账户

func VerifyWechat

func VerifyWechat(userId int64) (err error)

确认微信注册新账户

func VerifyWeibo

func VerifyWeibo(userId int64) (err error)

确认微博注册新账户

Types

type BindType

type BindType int64 // 位图, 使用低60位
const (
	BindTypeEmail  BindType = 1 << iota // 邮箱
	BindTypePhone                       // 手机
	BindTypeQQ                          // QQ
	BindTypeWechat                      // 微信
	BindTypeWeibo                       // 微博

	BindTypeMask = BindType(int64(-1) ^ (int64(-1) << 60))
)

type User

type User struct {
	Id          int64    `json:"id"           sqlx:"id"`
	Nickname    string   `json:"nickname"     sqlx:"nickname"`
	BindTypes   BindType `json:"bind_types"   sqlx:"bind_types"`
	Password    []byte   `json:"password"     sqlx:"password"`
	PasswordTag string   `json:"password_tag" sqlx:"password_tag"`
	Salt        []byte   `json:"salt"         sqlx:"salt"`
	CreateTime  int64    `json:"create_time"  sqlx:"create_time"`
	Verified    bool     `json:"verified"     sqlx:"verified"`
}

user 基本信息

func AddByEmail

func AddByEmail(email, nickname string, password, salt []byte, timestamp int64) (user *User, err error)

通过 邮箱 注册一个账户.

如果 nickname 为空, 则默认为 email
校验码注册时, password, salt 可以为 nil
如果 timestamp == 0 则默认使用当前时间

func AddByPhone

func AddByPhone(phone, nickname string, password, salt []byte, timestamp int64) (user *User, err error)

通过 手机 注册一个账户.

如果 nickname 为空, 则默认为 phone
校验码注册时, password, salt 可以为 nil
如果 timestamp == 0 则默认使用当前时间

func AddByQQ

func AddByQQ(openid, nickname string, timestamp int64) (user *User, err error)

通过 QQ 注册一个账户.

如果 nickname 为空, 则默认为 openid
如果 timestamp == 0 则默认使用当前时间

func AddByWechat

func AddByWechat(openid, nickname string, timestamp int64) (user *User, err error)

通过 微信 注册一个账户.

如果 nickname 为空, 则默认为 openid
如果 timestamp == 0 则默认使用当前时间

func AddByWeibo

func AddByWeibo(openid, nickname string, timestamp int64) (user *User, err error)

通过 微博 注册一个账户.

如果 nickname 为空, 则默认为 openid
如果 timestamp == 0 则默认使用当前时间

func Get

func Get(userId int64) (user *User, err error)

func GetByEmail

func GetByEmail(email string) (user *User, err error)

func GetByPhone

func GetByPhone(phone string) (user *User, err error)

func GetByQQ

func GetByQQ(openid string) (user *User, err error)

func GetByWechat

func GetByWechat(openid string) (user *User, err error)

func GetByWeibo

func GetByWeibo(openid string) (user *User, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL