auth

package
v0.0.0-...-498e44a Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2023 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RoleKey     = "role"
	UserNameKey = "user_name"
)

JWTの独自クレーム名

Variables

This section is empty.

Functions

func GetRole

func GetRole(ctx context.Context) (string, bool)

contextからユーザーロールを取得

func GetUserID

func GetUserID(ctx context.Context) (entity.UserID, bool)

contextからユーザーIDを取得

func IsAdmin

func IsAdmin(ctx context.Context) bool

contextから管理者権限の有無を確認する

func SetRole

func SetRole(ctx context.Context, token jwt.Token) context.Context

tokenからロール情報を取り出し、contextに付加

func SetUserID

func SetUserID(ctx context.Context, uid entity.UserID) context.Context

contextにユーザーIDを付加

Types

type JWTer

type JWTer struct {
	PrivateKey, PublicKey jwk.Key
	Store                 Store
	Clocker               clock.Clocker // JWTの時刻情報を操作
}

鍵として読み込んだデータを保持する

func NewJWTer

func NewJWTer(s Store, c clock.Clocker) (*JWTer, error)

鍵として読み込んだデータをJWTer型として保持

func (*JWTer) FillContext

func (j *JWTer) FillContext(r *http.Request) (*http.Request, error)

リクエストスコープな値をcontextに含める

func (*JWTer) GenerateToken

func (j *JWTer) GenerateToken(ctx context.Context, u *entity.User) ([]byte, error)

引数で渡されたユーザーに対して署名済みのJWTを発行する

func (*JWTer) GetToken

func (j *JWTer) GetToken(ctx context.Context, r *http.Request) (jwt.Token, error)

HTTPリクエストからJWTを取得する

type Store

type Store interface {
	Save(ctx context.Context, key string, userID entity.UserID) error
	Load(ctx context.Context, key string) (entity.UserID, error)
}

Jump to

Keyboard shortcuts

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