47 lines
1.4 KiB
Go
47 lines
1.4 KiB
Go
|
package models
|
||
|
|
||
|
import "time"
|
||
|
|
||
|
// CREATE TABLE `UserTokens` (
|
||
|
// `id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||
|
// `user_id` bigint(20) DEFAULT 0,
|
||
|
// `token` varchar(256) DEFAULT '',
|
||
|
// `refresh_token` varchar(256) DEFAULT '',
|
||
|
// `status` varchar(3) DEFAULT 'on' COMMENT 'on/off',
|
||
|
// `register_at` timestamp NULL DEFAULT current_timestamp(),
|
||
|
// `ending_at` timestamp NULL DEFAULT NULL COMMENT '종료날짜',
|
||
|
// PRIMARY KEY (`id`) USING BTREE
|
||
|
// ) ENGINE=InnoDB AUTO_INCREMENT=1000017 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
||
|
|
||
|
type Token struct {
|
||
|
ID int64 `json:"-" db:"id" gorm:"primary_key"`
|
||
|
UserID int64 `json:"user_id" db:"user_id" gorm:"index;"`
|
||
|
Token string `json:"token" db:"token" gorm:"size:255;index;"`
|
||
|
RefreshToken string `json:"refresh_token" db:"refresh_token" gorm:"size:255;index;"`
|
||
|
|
||
|
Status string `json:"status" gorm:"size:3;index"`
|
||
|
|
||
|
RegisterAt time.Time `json:"register_at" db:"register_at"`
|
||
|
EndingAt time.Time `json:"ending_at" db:"ending_at"`
|
||
|
}
|
||
|
|
||
|
// 테이블이름 정의
|
||
|
func (Token) TableName() string {
|
||
|
return "UserTokens"
|
||
|
}
|
||
|
|
||
|
type RefreshTokenRequest struct {
|
||
|
RefreshToken string `json:"refresh_token" binding:"required"`
|
||
|
}
|
||
|
|
||
|
type TokenResponse struct {
|
||
|
Token string `json:"token"`
|
||
|
TokenBody TokenBody `json:"tokenBody"`
|
||
|
}
|
||
|
|
||
|
type TokenBody struct {
|
||
|
ExpireAt time.Time `json:"tokenExpiredDate"`
|
||
|
TokenIdx int `json:"tokenIdx"`
|
||
|
TokenType int `json:"tokenType"`
|
||
|
}
|