本文整理匯總了Golang中github.com/gorilla/sessions.Session.AddFlash方法的典型用法代碼示例。如果您正苦於以下問題:Golang Session.AddFlash方法的具體用法?Golang Session.AddFlash怎麽用?Golang Session.AddFlash使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/gorilla/sessions.Session
的用法示例。
在下文中一共展示了Session.AddFlash方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: TestRediStore
func TestRediStore(t *testing.T) {
var req *http.Request
var rsp *ResponseRecorder
var hdr http.Header
var err error
var ok bool
var cookies []string
var session *sessions.Session
var flashes []interface{}
// Copyright 2012 The Gorilla Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Round 1 ----------------------------------------------------------------
// RedisStore
store := NewRediStore(10, "tcp", ":6379", "", []byte("secret-key"))
defer store.Close()
req, _ = http.NewRequest("GET", "http://localhost:8080/", nil)
rsp = NewRecorder()
// Get a session.
if session, err = store.Get(req, "session-key"); err != nil {
t.Fatalf("Error getting session: %v", err)
}
// Get a flash.
flashes = session.Flashes()
if len(flashes) != 0 {
t.Errorf("Expected empty flashes; Got %v", flashes)
}
// Add some flashes.
session.AddFlash("foo")
session.AddFlash("bar")
// Custom key.
session.AddFlash("baz", "custom_key")
// Save.
if err = sessions.Save(req, rsp); err != nil {
t.Fatalf("Error saving session: %v", err)
}
hdr = rsp.Header()
cookies, ok = hdr["Set-Cookie"]
if !ok || len(cookies) != 1 {
t.Fatalf("No cookies. Header:", hdr)
}
// Round 2 ----------------------------------------------------------------
req, _ = http.NewRequest("GET", "http://localhost:8080/", nil)
req.Header.Add("Cookie", cookies[0])
rsp = NewRecorder()
// Get a session.
if session, err = store.Get(req, "session-key"); err != nil {
t.Fatalf("Error getting session: %v", err)
}
// Check all saved values.
flashes = session.Flashes()
if len(flashes) != 2 {
t.Fatalf("Expected flashes; Got %v", flashes)
}
if flashes[0] != "foo" || flashes[1] != "bar" {
t.Errorf("Expected foo,bar; Got %v", flashes)
}
flashes = session.Flashes()
if len(flashes) != 0 {
t.Errorf("Expected dumped flashes; Got %v", flashes)
}
// Custom key.
flashes = session.Flashes("custom_key")
if len(flashes) != 1 {
t.Errorf("Expected flashes; Got %v", flashes)
} else if flashes[0] != "baz" {
t.Errorf("Expected baz; Got %v", flashes)
}
flashes = session.Flashes("custom_key")
if len(flashes) != 0 {
t.Errorf("Expected dumped flashes; Got %v", flashes)
}
// RediStore specific
// Set MaxAge to -1 to mark for deletion.
session.Options.MaxAge = -1
// Save.
if err = sessions.Save(req, rsp); err != nil {
t.Fatalf("Error saving session: %v", err)
}
// Round 3 ----------------------------------------------------------------
// Custom type
// RedisStore
store = NewRediStore(10, "tcp", ":6379", "", []byte("secret-key"))
defer store.Close()
req, _ = http.NewRequest("GET", "http://localhost:8080/", nil)
rsp = NewRecorder()
// Get a session.
if session, err = store.Get(req, "session-key"); err != nil {
t.Fatalf("Error getting session: %v", err)
}
//.........這裏部分代碼省略.........
示例2: TestRethinkStore
func TestRethinkStore(t *testing.T) {
var req *http.Request
var rsp *ResponseRecorder
var hdr http.Header
var err error
var ok bool
var cookies []string
var session *sessions.Session
var flashes []interface{}
// Copyright 2012 The Gorilla Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
if err := Setup(); err != nil {
panic(err)
}
// Round 1 ----------------------------------------------------------------
// RethinkStore
store, err := NewRethinkStore("127.0.0.1:28015", TestDatabase, TestTable, 5, 5, []byte("secret-key"))
if err != nil {
t.Fatalf(err.Error())
}
defer store.Close()
req, _ = http.NewRequest("GET", "http://localhost:8080/", nil)
rsp = NewRecorder()
// Get a session.
if session, err = store.Get(req, "session-key"); err != nil {
t.Fatalf("Error getting session: %v", err)
}
// Get a flash.
flashes = session.Flashes()
if len(flashes) != 0 {
t.Errorf("Expected empty flashes; Got %v", flashes)
}
// Add some flashes.
session.AddFlash("foo")
session.AddFlash("bar")
// Custom key.
session.AddFlash("baz", "custom_key")
// Save.
if err = sessions.Save(req, rsp); err != nil {
t.Fatalf("Error saving session: %v", err)
}
hdr = rsp.Header()
cookies, ok = hdr["Set-Cookie"]
if !ok || len(cookies) != 1 {
t.Fatalf("No cookies. Header:", hdr)
}
// Round 2 ----------------------------------------------------------------
req, _ = http.NewRequest("GET", "http://localhost:8080/", nil)
req.Header.Add("Cookie", cookies[0])
rsp = NewRecorder()
// Get a session.
if session, err = store.Get(req, "session-key"); err != nil {
t.Fatalf("Error getting session: %v", err)
}
// Check all saved values.
flashes = session.Flashes()
if len(flashes) != 2 {
t.Fatalf("Expected flashes; Got %v", flashes)
}
if flashes[0] != "foo" || flashes[1] != "bar" {
t.Errorf("Expected foo,bar; Got %v", flashes)
}
flashes = session.Flashes()
if len(flashes) != 0 {
t.Errorf("Expected dumped flashes; Got %v", flashes)
}
// Custom key.
flashes = session.Flashes("custom_key")
if len(flashes) != 1 {
t.Errorf("Expected flashes; Got %v", flashes)
} else if flashes[0] != "baz" {
t.Errorf("Expected baz; Got %v", flashes)
}
flashes = session.Flashes("custom_key")
if len(flashes) != 0 {
t.Errorf("Expected dumped flashes; Got %v", flashes)
}
// RethinkStore specific
// Set MaxAge to -1 to mark for deletion.
session.Options.MaxAge = -1
// Save.
if err = sessions.Save(req, rsp); err != nil {
t.Fatalf("Error saving session: %v", err)
}
// Round 3 ----------------------------------------------------------------
// Custom type
// RethinkStore
store, err = NewRethinkStore("127.0.0.1:28015", TestDatabase, TestTable, 5, 5, []byte("secret-key"))
if err != nil {
//.........這裏部分代碼省略.........
示例3: TestStore_CustomType
func TestStore_CustomType(t *testing.T) {
if !runIntegTest() {
t.Skip("Do not run integration tests unless DYNAMOSTORE_INTEG_TEST is set")
}
var err error
var session *sessions.Session
sessionKey := "session-key"
// Copyright 2012 The Gorilla Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// https://github.com/gorilla/sessions/blob/master/sessions_test.go
dynamodbClient := newTestDynamoDBAPI()
dummyTableName := prepareDynamoDBTable(dynamodbClient)
defer dynamodbClient.DeleteTable(&dynamodb.DeleteTableInput{
TableName: aws.String(dummyTableName),
})
store := New(dynamodbClient, dummyTableName, []byte("secret-key"))
req, resp := newTestRequestResponse()
// Get a session.
session, err = store.Get(req, sessionKey)
if err != nil {
t.Fatalf("Error getting session: %v", err)
}
// Get a flash.
flashes := session.Flashes()
if len(flashes) != 0 {
t.Errorf("Expected empty flashes; Got %v", flashes)
}
// Add some flashes.
session.AddFlash(&FlashMessage{42, "foo"})
// Save.
err = sessions.Save(req, resp)
if err != nil {
t.Fatalf("Error saving session: %v", err)
}
// Eat cookie
cookie := extractCookie(resp)
req, resp = newTestRequestResponse()
req.Header.Add("Cookie", cookie)
// Get a session.
session, err = store.Get(req, sessionKey)
if err != nil {
t.Fatalf("Error getting session: %v", err)
}
// Check all saved values.
flashes = session.Flashes()
if len(flashes) != 1 {
t.Fatalf("Expected flashes; Got %v", flashes)
}
custom := flashes[0].(FlashMessage)
if custom.Type != 42 || custom.Message != "foo" {
t.Errorf("Expected %#v, got %#v", FlashMessage{42, "foo"}, custom)
}
// Delete session.
session.Options.MaxAge = -1
// Save.
err = sessions.Save(req, resp)
if err != nil {
t.Fatalf("Error saving session: %v", err)
}
}
示例4: TestStore
func TestStore(t *testing.T) {
if !runIntegTest() {
t.Skip("Do not run integration tests unless DYNAMOSTORE_INTEG_TEST is set")
}
var err error
var session *sessions.Session
sessionKey := "session-key"
// Copyright 2012 The Gorilla Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// https://github.com/gorilla/sessions/blob/master/sessions_test.go
dynamodbClient := newTestDynamoDBAPI()
dummyTableName := prepareDynamoDBTable(dynamodbClient)
defer dynamodbClient.DeleteTable(&dynamodb.DeleteTableInput{
TableName: aws.String(dummyTableName),
})
store := New(dynamodbClient, dummyTableName, []byte("secret-key"))
req, resp := newTestRequestResponse()
// Get a session.
session, err = store.Get(req, sessionKey)
if err != nil {
t.Fatalf("Error getting session: %v", err)
}
// Get a flash.
flashes := session.Flashes()
if len(flashes) != 0 {
t.Errorf("Expected empty flashes; Got %v", flashes)
}
// Add some flashes.
session.AddFlash("foo")
session.AddFlash("bar")
// Custom key.
session.AddFlash("baz", "custom_key")
// Save.
err = sessions.Save(req, resp)
if err != nil {
t.Fatalf("Error saving session: %v", err)
}
// Eat cookie
cookie := extractCookie(resp)
req, resp = newTestRequestResponse()
req.Header.Add("Cookie", cookie)
// Get a session.
session, err = store.Get(req, sessionKey)
if err != nil {
t.Fatalf("Error getting session: %v", err)
}
// Check all saved values.
flashes = session.Flashes()
if len(flashes) != 2 {
t.Fatalf("Expected flashes; Got %v", flashes)
}
if flashes[0] != "foo" || flashes[1] != "bar" {
t.Errorf("Expected foo,bar; Got %v", flashes)
}
// Flashes has been flushed so it will return nothing
flashes = session.Flashes()
if len(flashes) != 0 {
t.Errorf("Expected dumped flashes; Got %v", flashes)
}
// Custom key.
flashes = session.Flashes("custom_key")
if len(flashes) != 1 {
t.Errorf("Expected flashes; Got %v", flashes)
} else if flashes[0] != "baz" {
t.Errorf("Expected baz; Got %v", flashes)
}
// Flashes for custom key has been flushed so it will return nothing
flashes = session.Flashes("custom_key")
if len(flashes) != 0 {
t.Errorf("Expected dumped flashes; Got %v", flashes)
}
// Save.
session.Options.MaxAge = -1
err = sessions.Save(req, resp)
if err != nil {
t.Fatalf("Error saving session: %v", err)
}
}
示例5: TestStoreExpiration
func TestStoreExpiration(t *testing.T) {
if !runIntegTest() {
t.Skip("Do not run integration tests unless DYNAMOSTORE_INTEG_TEST is set")
}
var err error
var session *sessions.Session
sessionKey := "session-key-expires"
dynamodbClient := newTestDynamoDBAPI()
dummyTableName := prepareDynamoDBTable(dynamodbClient)
defer dynamodbClient.DeleteTable(&dynamodb.DeleteTableInput{
TableName: aws.String(dummyTableName),
})
store := New(dynamodbClient, dummyTableName, []byte("secret-key"))
// Set 3 seconds for max age
store.MaxAge(3)
req, resp := newTestRequestResponse()
// Get a session.
session, err = store.Get(req, sessionKey)
if err != nil {
t.Fatalf("Error getting session: %v", err)
}
if !session.IsNew {
t.Fatalf("Expected session.IsNew == true, Got: %v", session.IsNew)
}
// Add some flashes.
session.AddFlash("foo")
session.AddFlash("bar")
// Save.
err = sessions.Save(req, resp)
if err != nil {
t.Fatalf("Error saving session: %v", err)
}
// Eat cookie
cookie := extractCookie(resp)
// Wait for 3 seconds
time.Sleep(3 * time.Second)
req, resp = newTestRequestResponse()
req.Header.Add("Cookie", cookie)
// Get a session.
session, err = store.Get(req, sessionKey)
if err != nil {
t.Fatalf("Error getting session: %v", err)
}
// session should be expired and it should be regenerated
if !session.IsNew {
t.Fatalf("Expected session.IsNew == true, Got: %v", session.IsNew)
}
// Check all saved values.
flashes := session.Flashes()
if len(flashes) != 0 {
t.Fatalf("Expected empty flashes; Got %v", flashes)
}
}
示例6: TestDynamoStore
func TestDynamoStore(t *testing.T) {
var req *http.Request
var rsp *httptest.ResponseRecorder
var hdr http.Header
var err error
var ok bool
var cookies []string
var session *sessions.Session
var flashes []interface{}
// Copyright 2012 The Gorilla Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Create dummy table
awsAuth := aws.Auth{
AccessKey: "dummy",
SecretKey: "dummy",
}
server := dynamodb.New(awsAuth, aws.Region{Name: "eu-west-1", DynamoDBEndpoint: "http://127.0.0.1:8000"})
dummyTableName := randSeq(10)
tableDesc := dynamodb.TableDescriptionT{
TableName: dummyTableName,
AttributeDefinitions: []dynamodb.AttributeDefinitionT{
dynamodb.AttributeDefinitionT{"Id", "S"},
},
KeySchema: []dynamodb.KeySchemaT{
dynamodb.KeySchemaT{"Id", "HASH"},
},
ProvisionedThroughput: dynamodb.ProvisionedThroughputT{
ReadCapacityUnits: 1,
WriteCapacityUnits: 1,
},
}
server.CreateTable(tableDesc)
defer server.DeleteTable(tableDesc)
// Round 1 ----------------------------------------------------------------
store, err := NewDynamoStoreWithRegionObj("dummy", "dummy", tableDesc.TableName, aws.Region{Name: "eu-west-1", DynamoDBEndpoint: "http://127.0.0.1:8000"}, []byte("secret-key"))
if err != nil {
t.Fatalf("Error creating dynamostore: %v", err)
}
req, _ = http.NewRequest("GET", "http://localhost:8080/", nil)
rsp = httptest.NewRecorder()
// Get a session.
if session, err = store.Get(req, "session-key"); err != nil {
t.Fatalf("Error getting session: %v", err)
}
// Get a flash.
flashes = session.Flashes()
if len(flashes) != 0 {
t.Errorf("Expected empty flashes; Got %v", flashes)
}
// Add some flashes.
session.AddFlash("foo")
session.AddFlash("bar")
// Custom key.
session.AddFlash("baz", "custom_key")
// Save.
if err = sessions.Save(req, rsp); err != nil {
t.Fatalf("Error saving session: %v", err)
}
hdr = rsp.Header()
cookies, ok = hdr["Set-Cookie"]
if !ok || len(cookies) != 1 {
t.Fatalf("No cookies. Header:", hdr)
}
// Round 2 ----------------------------------------------------------------
req, _ = http.NewRequest("GET", "http://localhost:8080/", nil)
req.Header.Add("Cookie", cookies[0])
rsp = httptest.NewRecorder()
// Get a session.
if session, err = store.Get(req, "session-key"); err != nil {
t.Fatalf("Error getting session: %v", err)
}
// Check all saved values.
flashes = session.Flashes()
if len(flashes) != 2 {
t.Fatalf("Expected flashes; Got %v", flashes)
}
if flashes[0] != "foo" || flashes[1] != "bar" {
t.Errorf("Expected foo,bar; Got %v", flashes)
}
flashes = session.Flashes()
if len(flashes) != 0 {
t.Errorf("Expected dumped flashes; Got %v", flashes)
}
// Custom key.
flashes = session.Flashes("custom_key")
if len(flashes) != 1 {
t.Errorf("Expected flashes; Got %v", flashes)
} else if flashes[0] != "baz" {
//.........這裏部分代碼省略.........