Documentation
¶
Index ¶
- func CheckExpired(entry *Period) bool
- func CountSSOServiceLogByClientId(ctx context.Context, db *database.Database, clientId string) (int, error)
- func DeleteAccessTokenByAccessToken(ctx context.Context, db *database.Database, accessToken string) error
- func DeleteAccessTokenByClientID(ctx context.Context, db *database.Database, clientID string) error
- func DeleteAccessTokenByUserId(ctx context.Context, db *database.Database, userId string) error
- func DeleteAccessTokenByUserIdAndClientId(ctx context.Context, db *database.Database, userId string, clientId string) error
- func DeleteAccessTokenPeriod(ctx context.Context, db *database.Database) error
- func DeleteAllLoginHistories(ctx context.Context, db *database.Database, userId string) error
- func DeleteBlockIP(ctx context.Context, db *database.Database, ip string) error
- func DeleteBlockMail(ctx context.Context, db *database.Database, mail string) error
- func DeleteCertificationByUserId(ctx context.Context, db *database.Database, userId string) error
- func DeleteMailCertPeriod(ctx context.Context, db *database.Database) error
- func DeleteMailCertification(ctx context.Context, db *database.Database, mailToken string) error
- func DeleteOTPBuffer(ctx context.Context, db *database.Database, id string) error
- func DeleteOTPBufferPeriod(ctx context.Context, db *database.Database) error
- func DeletePWForgetByToken(ctx context.Context, db *database.Database, token string) error
- func DeletePWForgetPeriod(ctx context.Context, db *database.Database) error
- func DeleteRefreshByUserId(ctx context.Context, db *database.Database, userId string) error
- func DeleteRefreshToken(ctx context.Context, db *database.Database, refreshToken string) error
- func DeleteRefreshTokenPeriod(ctx context.Context, db *database.Database) error
- func DeleteRefreshTokenTX(tx *database.Transaction, refreshToken string) error
- func DeleteRoleByUserID(ctx context.Context, db *database.Database, userId string) error
- func DeleteSSORefreshTokenByClientId(ctx context.Context, db *database.Database, clientId string) error
- func DeleteSSORefreshTokenByRefreshToken(ctx context.Context, db *database.Database, refresh string) error
- func DeleteSSORefreshTokenByUserId(ctx context.Context, db *database.Database, userId string) error
- func DeleteSSORefreshTokenByUserIdAndClientID(ctx context.Context, db *database.Database, userId string, clientId string) error
- func DeleteSSORefreshTokenPeriod(ctx context.Context, db *database.Database) error
- func DeleteSSOServiceByClientId(ctx context.Context, db *database.Database, clientId string) error
- func DeleteSSOServiceLogByClientId(ctx context.Context, db *database.Database, clientId string) error
- func DeleteSSOServiceLogByUserIDAndClientId(ctx context.Context, db *database.Database, userId string, clientId string) error
- func DeleteSSOServiceLogByUserId(ctx context.Context, db *database.Database, userId string) error
- func DeleteSessionByUserId(ctx context.Context, db *database.Database, userId string) error
- func DeleteSessionToken(ctx context.Context, db *database.Database, sessionToken string) error
- func DeleteSessionTokenPeriod(ctx context.Context, db *database.Database) error
- func DeleteSessionTokenTX(tx *database.Transaction, sessionToken string) error
- func DeleteUserDataByUserID(ctx context.Context, db *database.Database, userId string) error
- type Certification
- type IPBlockList
- type LoginHistory
- type MailBlockList
- type MailCertification
- type OnetimePasswordBuffer
- type PWForget
- type Period
- type RefreshInfo
- func GetRefreshToken(ctx context.Context, db *database.Database, refreshToken string) (*RefreshInfo, error)
- func GetRefreshTokenBySessionToken(ctx context.Context, db *database.Database, sessionToken string) (*RefreshInfo, error)
- func GetRefreshTokenByUserId(ctx context.Context, db *database.Database, userId string) ([]RefreshInfo, error)
- func GetRefreshTokenTX(tx *database.Transaction, refreshToken string) (*RefreshInfo, error)
- type Role
- type SSOAccessToken
- type SSOLogins
- type SSORefreshToken
- type SSOService
- type SSOServiceLog
- type SessionInfo
- func GetSessionToken(ctx context.Context, db *database.Database, sessionToken string) (*SessionInfo, error)
- func GetSessionTokenByUserId(ctx context.Context, db *database.Database, userId string) ([]SessionInfo, error)
- func GetSessionTokenTX(tx *database.Transaction, sessionToken string) (*SessionInfo, error)
- type TryCreateAccountLog
- func GetAllTryCreateAccountLog(ctx context.Context, db *database.Database) ([]TryCreateAccountLog, error)
- func GetTryCreateAccountLogByIP(ctx context.Context, db *database.Database, ip string) ([]TryCreateAccountLog, error)
- func GetTryCreateAccountLogByMail(ctx context.Context, db *database.Database, mail string) ([]TryCreateAccountLog, error)
- type User
- func GetAllUsers(ctx context.Context, db *database.Database) ([]User, error)
- func GetUserDataByUserID(ctx context.Context, db *database.Database, userId string) (*User, error)
- func GetUserDataByUserName(ctx context.Context, db *database.Database, userName string) (*User, error)
- func GetUserDataTXByUserID(db *database.Transaction, userId string) (*User, error)
- type UserId
- type UserMailPW
- type WorkerLog
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DeleteAccessTokenPeriod ¶
func DeleteAllLoginHistories ¶
ログインログを削除する
func DeleteBlockIP ¶
func DeleteBlockMail ¶
func DeleteMailCertPeriod ¶
func DeleteMailCertification ¶
削除
func DeleteOTPBuffer ¶
func DeleteOTPBufferPeriod ¶
func DeletePWForgetByToken ¶
func DeletePWForgetPeriod ¶
func DeleteRefreshByUserId ¶
func DeleteRefreshToken ¶
func DeleteRefreshTokenTX ¶
func DeleteRefreshTokenTX(tx *database.Transaction, refreshToken string) error
func DeleteRoleByUserID ¶
func DeleteSessionByUserId ¶
func DeleteSessionToken ¶
func DeleteSessionTokenTX ¶
func DeleteSessionTokenTX(tx *database.Transaction, sessionToken string) error
Types ¶
type Certification ¶
type Certification struct {
AccountCreateDate time.Time `datastore:"accountCreateDate" json:"account_create_date"`
OnetimePasswordSecret string `datastore:"onetimePasswordSecret,omitempty" json:"onetime_password_secret"`
OnetimePasswordBackups []string `datastore:"onetimePasswordBackups,omitempty" json:"onetime_password_backups"`
UserMailPW
UserId
}
認証テーブル OnetimePasswordSecret, OnetimePasswordBackupはOptional OTPはoptionalであるがアカウント登録時必須なため、実質admin userのログイン用
func GetCertificationByMail ¶
func GetCertificationByMail(ctx context.Context, db *database.Database, mail string) (*Certification, error)
メールアドレスから対象の認証情報を取得します
func GetCertificationByUserID ¶
func GetCertificationByUserID(ctx context.Context, db *database.Database, userId string) (*Certification, error)
ユーザIDから対象の認証情報を取得します
type IPBlockList ¶
type IPBlockList struct {
IP string `datastore:"ip" json:"ip"`
}
IPアドレスのブロックリスト アカウント作成時、該当IPがブロックされていたら作成できない
func GetAllBlocIP ¶
func GetBlockListByIP ¶
IPを指定して、ブラックリストを取得
type LoginHistory ¶
type LoginHistory struct {
AccessId string `datastore:"accessId" json:"access_id"`
Date time.Time `datastore:"date" json:"date"`
IpAddress string `datastore:"ipAddress" json:"ip_address"`
UserAgent string `datastore:"userAgent" json:"user_agent"`
UserId
}
ログイン履歴(個別) IsSSOとSSOPublicKeyはOptional
func GetAllLoginHistory ¶
func GetAllLoginHistory(ctx context.Context, db *database.Database, userId string, limit ...interface{}) ([]LoginHistory, error)
userIdを指定して、ログインログを取得する
type MailBlockList ¶
type MailBlockList struct {
Mail string `datastore:"mail" json:"mail"`
}
メールアドレスのブロックリスト
func GetAllBlocMail ¶
func GetBlockListByMail ¶
func GetBlockListByMail(ctx context.Context, db *database.Database, mail string) (*MailBlockList, error)
メールアドレスを指定して、ブロックリストを取得
type MailCertification ¶
type MailCertification struct {
MailToken string `datastore:"mailToken" json:"mail_token"`
ClientToken string `datastore:"clientToken" json:"client_token"`
OpenNewWindow bool `datastore:"openNewWindow" json:"open_new_window"`
Verify bool `datastore:"verify" json:"verify"`
ChangeMailMode bool `datastore:"changeMailMode" json:"change_mail_mode"`
Period
Mail string `datastore:"mail" json:"mail"`
UserId string `datastore:"userId,omitempty" json:"user_id"` // Option
}
メールアドレス認証用テーブル
func GetMailCertificationByClientToken ¶
func GetMailCertificationByClientToken(ctx context.Context, db *database.Database, clientToken string) (*MailCertification, error)
ClientMailTokenで取得します
func GetMailCertificationByMailToken ¶
func GetMailCertificationByMailToken(ctx context.Context, db *database.Database, mailToken string) (*MailCertification, error)
MailTokenで取得します
type OnetimePasswordBuffer ¶
type OnetimePasswordBuffer struct {
Id string `datastore:"id" json:"id"`
PublicKey string `datastore:"onetimePublicKey,omitempty" json:"onetime_public_key"`
SecretKey string `datastore:"onetimeSecretKey" json:"onetime_secret_key"`
IsLogin bool `datastore:"isLogin" json:"is_login"`
FailedCount int `datastore:"failedCount" json:"failed_count"`
Period
UserId
}
ワンタイムパスワード設定 & ログイン時一時保存用
- パスワード設定 OPTのトークンを発行した際に、そのトークンで生成したコードとこのidを送ることでOTPを設定できる。
- ログイン時 ログイン後、OTPが設定されている場合、このテーブルに格納し、Idをcookieに格納する。 その後、OTPを入力してもらい検証することでログインする。
func GetOTPBufferByID ¶
type PWForget ¶
type PWForget struct {
ForgetToken string `datastore:"forgetToken" json:"forget_token"`
Mail string `datastore:"mail" json:"mail"`
Period
}
パスワード忘れによる再登録用テーブル
func GetPWForgetByMail ¶
func GetPWForgetByToken ¶
type Period ¶
type Period struct {
CreateDate time.Time `datastore:"createDate" json:"create_date"`
PeriodMinute int `datastore:"periodMinute,omitempty" json:"period_minute"`
PeriodHour int `datastore:"periodHour,omitempty" json:"period_hour"`
PeriodDay int `datastore:"periodDay,omitempty" json:"period_day"`
}
パスコード再設定や、ワンタイムパスワード入力、ユーザ登録などのテーブルにおいて制限時間を設ける
PeriodMinuteとPeriodHourはどちらか
type RefreshInfo ¶
type RefreshInfo struct {
RefreshToken string `datastore:"refreshToken" json:"refresh_token"`
SessionToken string `datastore:"sessionToken" json:"session_token"`
AccessID string `datastore:"accessId" json:"access_id"`
Period
UserId
}
CateiruSSOのリフレッシュトークン
func GetRefreshToken ¶
func GetRefreshTokenByUserId ¶
func GetRefreshTokenTX ¶
func GetRefreshTokenTX(tx *database.Transaction, refreshToken string) (*RefreshInfo, error)
func (*RefreshInfo) AddTX ¶
func (c *RefreshInfo) AddTX(tx *database.Transaction) error
type SSOAccessToken ¶
type SSOAccessToken struct {
SSOAccessToken string `datastore:"ssoAccessToken" json:"sso_access_token"`
SSORefreshToken string `datastore:"ssoRefreshToken" json:"sso_refresh_token"`
ClientID string `datastore:"clientId" json:"client_id"`
RedirectURI string `datastore:"redirectURI" json:"redirect_uri"`
Create time.Time `datastore:"create" json:"create"`
Period
UserId
}
type SSOLogins ¶
type SSOLogins struct {
SSORefreshTokens []string `datastore:"ssoRefreshTokens" json:"sso_refresh_tokens"`
UserId
}
ログインしているSSO
type SSORefreshToken ¶
type SSORefreshToken struct {
SSOAccessToken string `datastore:"ssoAccessToken" json:"sso_access_token"`
SSORefreshToken string `datastore:"ssoRefreshToken" json:"sso_refresh_token"`
ClientID string `datastore:"clientId" json:"client_id"`
RedirectURI string `datastore:"redirectURI" json:"redirect_uri"`
Period
UserId
}
SSOのリフレッシュトークン
type SSOService ¶
type SSOService struct {
ClientID string `datastore:"clientId" json:"client_id"`
TokenSecret string `datastore:"tokenSecret" json:"token_secret"`
Name string `datastore:"name" json:"name"`
ServiceIcon string `datastore:"serviceIcon" json:"service_icon"`
FromUrl []string `datastore:"fromUrl" json:"from_url"`
ToUrl []string `datastore:"toUrl" json:"to_url"`
AllowRoles []string `datastore:"allowRoles,omitempty" json:"allow_roles"`
UserId
}
SSO情報 SessionTokenPeriod, RefreshTokenPeriodはOptional
func GetSSOServiceByClientId ¶
func GetSSOServiceByUserID ¶
type SSOServiceLog ¶
type SSOServiceLog struct {
LogId string `datastore:"logId" json:"log_id"`
AcceptDate time.Time `datastore:"acceptDate" json:"accept_date"`
ClientID string `datastore:"clientId" json:"client_id"`
UserId
}
type SessionInfo ¶
type SessionInfo struct {
SessionToken string `datastore:"sessionToken" json:"session_token"`
AccessID string `datastore:"accessId" json:"access_id"`
Period
UserId
}
CateiruSSOのセッション情報
func GetSessionToken ¶
func GetSessionTokenByUserId ¶
func GetSessionTokenTX ¶
func GetSessionTokenTX(tx *database.Transaction, sessionToken string) (*SessionInfo, error)
func (*SessionInfo) AddTX ¶
func (c *SessionInfo) AddTX(tx *database.Transaction) error
type TryCreateAccountLog ¶
type TryCreateAccountLog struct {
LogId string `datastore:"logId" json:"log_id"`
IP string `datastore:"ip" json:"ip"`
TryDate time.Time `datastore:"tryDate" json:"try_date"`
TargetMail string `datastore:"targetMail" json:"target_mail"`
}
アカウント作成時のログ 悪意のあるユーザにスパムメールを送られた場合、このログからIPをブロックします
func GetTryCreateAccountLogByIP ¶
func GetTryCreateAccountLogByIP(ctx context.Context, db *database.Database, ip string) ([]TryCreateAccountLog, error)
IPアドレスで、アカウント作成ログを取得する
func GetTryCreateAccountLogByMail ¶
func GetTryCreateAccountLogByMail(ctx context.Context, db *database.Database, mail string) ([]TryCreateAccountLog, error)
メールアドレスで、アカウント作成ログを取得する 身に覚えがない登録メールが送信されたという問い合わせが来た場合に、これを使用して送信したIPアドレスを取得する
type User ¶
type User struct {
FirstName string `datastore:"firstName" json:"first_name"`
LastName string `datastore:"lastName" json:"last_name"`
UserName string `datastore:"userName" json:"user_name"`
UserNameFormatted string `datastore:"userNameFormatted" json:"user_name_formatted"`
Mail string `datastore:"mail" json:"mail"`
Theme string `datastore:"theme" json:"theme"`
AvatarUrl string `datastore:"avatarUrl" json:"avatar_url"`
Role []string `datastore:"role" json:"role"`
UserId
}
ユーザの情報
func GetUserDataByUserID ¶
func GetUserDataByUserName ¶
func GetUserDataTXByUserID ¶
func GetUserDataTXByUserID(db *database.Transaction, userId string) (*User, error)
TX modeで取得
type UserMailPW ¶
type UserMailPW struct {
Mail string `datastore:"mail" json:"mail"`
Password []byte `datastore:"password" json:"password"`
Salt []byte `datastore:"salt" json:"salt"`
}
メールアドレスとパスワード パスワードはハッシュ化する必要がある