Version: v0.0.2
Try5 is a new intent to develop an easy and basic authentication system. The functionalyty is exposed through REST Web Services.
It is an opinionated library with absolutely no garanties. Use at your own risk.
You need:
Proposed features:
go get github.com/jllopis/try5
The server expect to receive the data in the body of the request for POST and PUT verbs using type application/json; charset=UTF-8. The data provided as url vars or via application/x-www-form-urlencoded will not be accepted.
GET request to /api/v1/accounts
$ curl -ki https://b2d:9000/api/v1/accounts
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Date: Fri, 22 May 2015 11:23:57 GMT
Content-Length: 715
[
{
"uid": "447fb74b-114c-46c9-aee4-292998d845bb",
"email": "[email protected]",
"name": "test user 5",
"password": "$2a$10$h.tOLA00ZLKux5IWa6l4JOcxpa2SdCTS56w2p7I31JZw2lZM3ivIK",
"active": true,
"gravatar": null,
"created": "2015-05-22T11:15:05.840968723Z",
"updated": "2015-05-22T11:15:05.840968723Z",
"deleted": null
},
{
"uid": "60b51e16-fe83-4ac2-853c-7cbc1f250a09",
"email": "[email protected]",
"name": "test user 4",
"password": "$2a$10$KfX8Sf13JsQWSelCxDDFluy0iHMaNmVYzGrZTHux3NYKS7476Qp0y",
"active": true,
"gravatar": null,
"created": "2015-05-22T11:22:32.145080999Z",
"updated": "2015-05-22T11:22:32.145080999Z",
"deleted": null
}
]
GET request to /api/v1/accounts/7ecee355-537b-492c-ab23-6a41219959d1
$ curl -ki https://b2d:9000/api/v1/accounts/7ecee355-537b-492c-ab23-6a41219959d1
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Date: Fri, 22 May 2015 10:57:40 GMT
Content-Length: 359
[
{
"uid": "7ecee355-537b-492c-ab23-6a41219959d1",
"email": "[email protected]",
"name": "test user 5",
"password": "$2a$10$651aQ.FoQQo3t2BBhI3WX.rVSKbPu4ks8feMG1zi5dBvysraY7nYm",
"active": true,
"gravatar": null,
"created": "2015-05-22T10:01:56.160527217Z",
"updated": "2015-05-22T10:01:56.160527217Z",
"deleted": null
}
]
POST request to /api/v1/accounts
$ curl -ki https://b2d:9000/api/v1/accounts -X POST -d '{"email":"[email protected]","name":"test user 4","password":"1234","active":true}'
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Date: Fri, 22 May 2015 11:22:32 GMT
Content-Length: 333
{
"uid": "60b51e16-fe83-4ac2-853c-7cbc1f250a09",
"email": "[email protected]",
"name": "test user 4",
"password": "$2a$10$KfX8Sf13JsQWSelCxDDFluy0iHMaNmVYzGrZTHux3NYKS7476Qp0y",
"active": true,
"gravatar": null,
"created": "2015-05-22T11:22:32.145080999Z",
"updated": "2015-05-22T11:22:32.145080999Z",
"deleted": null
}
PUT request to /api/v1/accounts/
$ curl -ki https://b2d:9000/api/v1/accounts/e557e74a-cb35-4039-b4e5-f9c6ca777c5b -X PUT -d '{"name": "Test User 4","email":"[email protected]","password":"1234","active":true}'
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Date: Fri, 22 May 2015 11:48:41 GMT
Content-Length: 309
{
"uid": "e557e74a-cb35-4039-b4e5-f9c6ca777c5b",
"email": "[email protected]",
"name": "Test User 4",
"password": "$2a$10$MWCvQXeCw0D1jXYQUMGCJuAFsTPzTvuYYVE2/1pEhu/.LQHqmqsPu",
"active": true,
"gravatar": null,
"created": "2015-05-22T11:22:32.145080999Z",
"updated": "2015-05-22T11:48:41.567466863Z",
"deleted": null
}
DELETE request to /api/v1/accounts/802aa9ef-b00e-4204-9b75-4dbb82d20643
$ curl -ki https://localhost:9000/api/v1/accounts/802aa9ef-b00e-4204-9b75-4dbb82d20643 -X DELETE
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Date: Fri, 22 May 2015 15:56:49 GMT
Content-Length: 164
{
"status": "ok",
"action": "delete",
"info": "802aa9ef-b00e-4204-9b75-4dbb82d20643",
"table": "accounts",
"id": "802aa9ef-b00e-4204-9b75-4dbb82d20643"
}
POST request to /api/v1/authenticate
$ curl -ki https://localhost:9000/api/v1/authenticate -X POST -d "[email protected]" -d "password=12345"
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Date: Fri, 22 May 2015 16:47:47 GMT
Content-Length: 334
{
"account": {
"uid": "eccd8c58-38ec-4385-9569-6eb26a83fa17",
"email": "[email protected]",
"name": "Test User 14",
"password": null,
"active": true,
"gravatar": null,
"created": "2015-05-22T15:04:45.710780544Z",
"updated": "2015-05-22T15:46:18.597248475Z",
"deleted": null
},
"status": "ok"
}
The server returns the following status codes:
200: Ok201: Created400: Bad Request403: Forbidden404: Not Found500: Internal Server Error (dont know what happened)Content type
Image
Digest
sha256:7f42e1c18…
Size
-
Last updated
over 11 years ago
docker pull jllopis/try5