Fns的身份验证服务。
验证 HTTP 头 Authorization
的值。
当前提供hmac
和jwt
两种实现。
令牌默认存储在共享器中,如由需要,可以代替。
Hmac
services:
authorizations:
expireTTL: "24h"
autoRefresh: true
autoRefreshWindow: "12h"
encoder:
key: "some sk"
在modules/services.go
中的dependencies
函数中添加。
func dependencies() (v []services.Service) {
v = []services.Service{
// add dependencies here
authorizations.New(),
}
return
}
在函数上打上@authorization
注解即可。
手动校验:
// 校验指定令牌,当成功后,身份不会自动注入上下文中。
validated, validErr := authorizations.Validate(ctx, token)
// 校验当前上下文中的令牌,当成功后,身份会自动注入上下文中。
validated, validErr := authorizations.ValidateContext(ctx)
authorization, has, err := authorizations.Load(ctx)
token, err := authorizations.Create(ctx, param)
成功创建后,身份会自动注入上下文中。