1. Authenticator 回傳的 data
2. data 會丟入到 PayloadFunc
3. PayloadFunc 整理資料寫入 MapClaims
4. Authorizator 再拿 MapClaims 資料出來判斷
新版和舊版有地方不同
type xxxxx struct{
aaaaaaa:string
}
1、
Authenticator: func(userId string, password string, c *gin.Context) (interface{}, bool) {
return xxxxx{aaaaaaa: ooooxxxx} or string
2、
PayloadFunc: func(data interface{}) jwt.MapClaims {
if v, ok := data.(xxxxx); ok {
id = data.(xxxxx).aaaaaaa
}
return jwt.MapClaims{“aaaaaaa”: ooooxxxx, “bbbbbbb”: ooooxxxx}
3、
Authorizator: func(data interface{}, c *gin.Context) bool {
https://www.youtube.com/watch?v=h0rl1NpWgIw&index=8&list=PL_kqm4nEkYPsyJEqagiYK9G6uMoeayEM4&t=0s
http://www.badbuta.com/2018/06/02/%E7%82%BA%E5%B0%8F%E7%B1%B3%E8%B7%AF%E7%94%B1%E5%99%A83%E6%8F%9B%E5%80%8B%E9%9D%88%E9%AD%82%EF%BC%88padavan%EF%BC%89/
http://www.tftcentral.co.uk/
https://www.youtube.com/watch?v=IGo7K8bRWgk
https://buzzorange.com/techorange/2018/06/22/why-game-producers-son-is-not-addicted/
https://www.youtube.com/watch?v=GLSG_Wh_YWc
Stateless vs Stateful
https://youtu.be/GLSG_Wh_YWc?t=8840
https://youtu.be/GpLb2XvKv20?t=946
https://medium.com/@matthew.smith_66715/why-we-chose-flutter-and-how-its-changed-our-company-for-the-better-271ddd25da60
State
https://www.jianshu.com/p/ed9c3378e9cc
https://tw.saowen.com/a/cff1432eff1eb306314bd241f231b4d693eaaa5aaa5310df9015fc7a0e53c134