делаем метод авторизации. К примеру
/users.Auth/
Который принимает параметры
{
"login":"",
"email":"", //необязательно но я использую
"pass":""
}
И возвращает token
rb := make([]byte, 64)
_, err := rand.Read(rb)
if err != nil {
log.Print(err)
}
var token string = `{
"user_id":"",
"name":"",
...,
"salt": "`+base64.URLEncoding.EncodeToString(rb)+`",
"expiries":"", //время жизни токена
}`
encrypt_data := xxtea.Encrypt([]byte(token), []byte("Ваш ключ для шифровки токена"))
return base64.URLEncoding.EncodeToString(encrypt_data)
xxtea
https://github.com/xxtea/xxtea-go
Всем остальным методам посылаем ещё токен.
Можно ещё использовать стандартные сессии но тогда нагрузка на сервер большая. А так всё храниться на стороне клиента.