mirror of
https://github.com/mainflux/mainflux.git
synced 2025-04-27 13:48:49 +08:00

* Add resetPassword to the SDK Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * add space to sdk comments Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * add tab space to comments Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update .env file Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * add referer header to sdk request Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update .env file Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update adding headers to processRequest Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * remove code repetition Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * add comment to content-Type Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update header initialization Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update docker-compose file Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * add cli functionality Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * add host as a tag Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update hostURL flag Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update comments Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * remove hostURL duplication Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update inline Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * add space in comments Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * add space in comment Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update description of reset password request Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> --------- Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> Co-authored-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com>
58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
package sdk
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/mainflux/mainflux/pkg/errors"
|
|
)
|
|
|
|
// Token is used for authentication purposes.
|
|
// It contains AccessToken, RefreshToken and AccessExpiry.
|
|
type Token struct {
|
|
AccessToken string `json:"access_token,omitempty"`
|
|
RefreshToken string `json:"refresh_token,omitempty"`
|
|
AccessType string `json:"access_type,omitempty"`
|
|
}
|
|
|
|
func (sdk mfSDK) CreateToken(user User) (Token, errors.SDKError) {
|
|
var treq = tokenReq{
|
|
Identity: user.Credentials.Identity,
|
|
Secret: user.Credentials.Secret,
|
|
}
|
|
data, err := json.Marshal(treq)
|
|
if err != nil {
|
|
return Token{}, errors.NewSDKError(err)
|
|
}
|
|
|
|
url := fmt.Sprintf("%s/%s/%s", sdk.usersURL, usersEndpoint, issueTokenEndpoint)
|
|
|
|
_, body, sdkerr := sdk.processRequest(http.MethodPost, url, "", data, nil, http.StatusCreated)
|
|
if sdkerr != nil {
|
|
return Token{}, sdkerr
|
|
}
|
|
var token Token
|
|
if err := json.Unmarshal(body, &token); err != nil {
|
|
return Token{}, errors.NewSDKError(err)
|
|
}
|
|
|
|
return token, nil
|
|
}
|
|
|
|
func (sdk mfSDK) RefreshToken(token string) (Token, errors.SDKError) {
|
|
url := fmt.Sprintf("%s/%s/%s", sdk.usersURL, usersEndpoint, refreshTokenEndpoint)
|
|
|
|
_, body, sdkerr := sdk.processRequest(http.MethodPost, url, token, []byte{}, nil, http.StatusCreated)
|
|
if sdkerr != nil {
|
|
return Token{}, sdkerr
|
|
}
|
|
|
|
var t = Token{}
|
|
if err := json.Unmarshal(body, &t); err != nil {
|
|
return Token{}, errors.NewSDKError(err)
|
|
}
|
|
|
|
return t, nil
|
|
}
|