replace zxq.co/ripple/hanayo
This commit is contained in:
83
vendor/github.com/gin-gonic/contrib/jwt/README.md
generated
vendored
Normal file
83
vendor/github.com/gin-gonic/contrib/jwt/README.md
generated
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
JWT middleware for go gonic.
|
||||
|
||||
JSON Web Token (JWT) more information: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html
|
||||
|
||||
EDIT: Below is the test for [christopherL91/Go-API](https://github.com/christopherL91/Go-API)
|
||||
|
||||
```go
|
||||
package jwt_test
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
. "github.com/smartystreets/goconvey/convey"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
type Response struct {
|
||||
Token string `json:"token"`
|
||||
}
|
||||
|
||||
func createNewsUser(username, password string) *User {
|
||||
return &User{username, password}
|
||||
}
|
||||
|
||||
func TestLogin(t *testing.T) {
|
||||
Convey("Should be able to login", t, func() {
|
||||
user := createNewsUser("jonas", "1234")
|
||||
jsondata, _ := json.Marshal(user)
|
||||
post_data := strings.NewReader(string(jsondata))
|
||||
req, _ := http.NewRequest("POST", "http://localhost:3000/api/login", post_data)
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
client := &http.Client{}
|
||||
res, _ := client.Do(req)
|
||||
So(res.StatusCode, ShouldEqual, 200)
|
||||
|
||||
Convey("Should be able to parse body", func() {
|
||||
body, err := ioutil.ReadAll(res.Body)
|
||||
defer res.Body.Close()
|
||||
So(err, ShouldBeNil)
|
||||
Convey("Should be able to get json back", func() {
|
||||
responseData := new(Response)
|
||||
err := json.Unmarshal(body, responseData)
|
||||
So(err, ShouldBeNil)
|
||||
|
||||
Convey("Should be able to be authorized", func() {
|
||||
token := responseData.Token
|
||||
req, _ := http.NewRequest("GET", "http://localhost:3000/api/auth/testAuth", nil)
|
||||
req.Header.Set("Authorization", "Bearer "+token)
|
||||
client = &http.Client{}
|
||||
res, _ := client.Do(req)
|
||||
So(res.StatusCode, ShouldEqual, 200)
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
Convey("Should not be able to login with false credentials", t, func() {
|
||||
user := createNewsUser("jnwfkjnkfneknvjwenv", "wenknfkwnfknfknkfjnwkfenw")
|
||||
jsondata, _ := json.Marshal(user)
|
||||
post_data := strings.NewReader(string(jsondata))
|
||||
req, _ := http.NewRequest("POST", "http://localhost:3000/api/login", post_data)
|
||||
req.Header.Set("Content-Type", "application/json")
|
||||
client := &http.Client{}
|
||||
res, _ := client.Do(req)
|
||||
So(res.StatusCode, ShouldEqual, 401)
|
||||
})
|
||||
|
||||
Convey("Should not be able to authorize with false credentials", t, func() {
|
||||
token := ""
|
||||
req, _ := http.NewRequest("GET", "http://localhost:3000/api/auth/testAuth", nil)
|
||||
req.Header.Set("Authorization", "Bearer "+token)
|
||||
client := &http.Client{}
|
||||
res, _ := client.Do(req)
|
||||
So(res.StatusCode, ShouldEqual, 401)
|
||||
})
|
||||
}
|
||||
```
|
Reference in New Issue
Block a user