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"` }
メールアドレスとパスワード パスワードはハッシュ化する必要がある