Changes:
-
Removed session-cookies auth (It can be found here if needed v1-session-cookies-auth)
-
JWT instead of session-cookies
- Token validation middleware
- Token generation
- Authorization and refresh token
-
Redis as a database not as a session storage
-
Go Modules
-
Environment (.env)
-
Updated unit test
-
Code and structure enhancements
-
Middleware:
TokenAuthMiddleware
RequestIDMiddleware
gzip.Gzip Middleware
-
Golang in travis:
1.10.x- 1.13.x
- 1.14.x
- master
- SSL Support
- Generating the certifications in
./cert
folder from:
- Generating the certifications in
$ sh generate-certificate.sh
- SSL=TRUE | FALSE in .env
- SSL implementation in the server in **main.go**
- Postman:
- https://www.postman.com/collections/7f941b400a88ddd9c137
- Renamed APIs
- Added Auth -> Refresh Token API (using the
refresh_token
)
Capture both access_token
& refresh_token
and put it in the global variable from the Login API in Tests tab
requests.
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
var jsonData = JSON.parse(responseBody);
pm.globals.set("token", jsonData.token.access_token);
pm.globals.set("refresh_token", jsonData.token.refresh_token);
});
To be used in:
Authorization -> Bearer Token
Value: {{token}}
(Comes from global variables)
- PostgreSQL:
- 2 trigger functions:
public.created_at_column()
public.update_at_column()
- 2 trigger functions:
Those are added to updated_at
and created_at
columns to update the latest timestamp automatically in both user and article tables. You can explore the tables and public schema for more info.