mirror of
https://git.phreedom.club/localhost_frssoft/bloat.git
synced 2024-11-21 19:41:28 +00:00
Revoke oauth token on signout
This commit is contained in:
parent
df031d5edd
commit
b83a00aa2c
|
@ -138,6 +138,16 @@ func (c *Client) AuthenticateToken(ctx context.Context, authCode, redirectURI st
|
|||
return c.authenticate(ctx, params)
|
||||
}
|
||||
|
||||
func (c *Client) RevokeToken(ctx context.Context) error {
|
||||
params := url.Values{
|
||||
"client_id": {c.config.ClientID},
|
||||
"client_secret": {c.config.ClientSecret},
|
||||
"token": {c.GetAccessToken(ctx)},
|
||||
}
|
||||
|
||||
return c.doAPI(ctx, http.MethodPost, "/oauth/revoke", params, nil, nil)
|
||||
}
|
||||
|
||||
func (c *Client) authenticate(ctx context.Context, params url.Values) error {
|
||||
u, err := url.Parse(c.config.Server)
|
||||
if err != nil {
|
||||
|
|
|
@ -902,6 +902,10 @@ func (s *service) Signin(c *client, code string) (err error) {
|
|||
return c.setSession(c.s)
|
||||
}
|
||||
|
||||
func (s *service) Signout(c *client) (err error) {
|
||||
return c.RevokeToken(c.ctx)
|
||||
}
|
||||
|
||||
func (s *service) Post(c *client, content string, replyToID string,
|
||||
format string, visibility string, isNSFW bool,
|
||||
files []*multipart.FileHeader) (id string, err error) {
|
||||
|
|
|
@ -676,6 +676,10 @@ func NewHandler(s *service, verbose bool, staticDir string) http.Handler {
|
|||
}, CSRF, HTML)
|
||||
|
||||
signout := handle(func(c *client) error {
|
||||
err := s.Signout(c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
c.unsetSession()
|
||||
c.redirect("/")
|
||||
return nil
|
||||
|
|
Loading…
Reference in a new issue