Rumah pembangunan bahagian belakang Golang Menggunakan JWT untuk melaksanakan pengesahan dalam Beego

Menggunakan JWT untuk melaksanakan pengesahan dalam Beego

Jun 22, 2023 pm 12:44 PM
jwt Pengesahan beego

Dengan perkembangan pesat Internet dan Internet mudah alih, semakin banyak aplikasi memerlukan pengesahan dan kawalan kebenaran, dan JWT (JSON Web Token), sebagai mekanisme pengesahan dan kebenaran yang ringan, digunakan dalam aplikasi WEB digunakan secara meluas dalam.

Beego ialah rangka kerja MVC berdasarkan bahasa Go, yang mempunyai kelebihan kecekapan, kesederhanaan dan kebolehskalaan Artikel ini akan memperkenalkan cara menggunakan JWT untuk melaksanakan pengesahan dalam Beego.

1. Pengenalan kepada JWT

JSON Web Token (JWT) ialah standard terbuka (RFC 7519) untuk menghantar maklumat identiti dan tuntutan melalui rangkaian. Ia boleh memindahkan maklumat dengan selamat antara pelbagai sistem kerana ia boleh menyulitkan dan menandatangani maklumat secara digital. JWT terdiri daripada tiga bahagian: pengepala, tuntutan dan tandatangan. Apabila pengepala dan tuntutan dikodkan menggunakan base64, tandatangan menggunakan kunci untuk menyulitkan data.

2. Beego menyepadukan JWT

1. Pasang dependensi

Mula-mula kita perlu memasang dua pakej dependensi:

pergi dapatkan github.com/dgrijalva/ jwt-go
pergi dapatkan github.com/astaxie/beego

2 Cipta kelas alat JWT

Kami boleh mencipta kelas alat JWT dengan merangkum operasi JWT untuk menjana , sahkan. JWT dan operasi lain. Ini termasuk kaedah seperti mengeluarkan token, mengesahkan token dan mendapatkan maklumat yang disimpan dalam token. Kodnya adalah seperti berikut:

package utils

import (
    "errors"
    "github.com/dgrijalva/jwt-go"
    "time"
)

// JWT构造体
type JWT struct {
    signingKey []byte
}

// 定义JWT参数
type CustomClaims struct {
    UserID   string `json:"userId"`
    UserName string `json:"userName"`
    jwt.StandardClaims
}

// 构造函数
func NewJWT() *JWT {
    return &JWT{
        []byte("jwt-secret-key"),
    }
}

// 生成token
func (j *JWT) CreateToken(claims CustomClaims) (string, error) {
    token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)

    return token.SignedString(j.signingKey)
}

// 解析token
func (j *JWT) ParseToken(tokenString string) (*CustomClaims, error) {
    token, err := jwt.ParseWithClaims(tokenString, &CustomClaims{}, func(token *jwt.Token) (interface{}, error) {
        if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
            return nil, errors.New("签名方法不正确")
        }
        return j.signingKey, nil
    })

    if err != nil {
        return nil, err
    }

    if claims, ok := token.Claims.(*CustomClaims); ok && token.Valid {
        return claims, nil
    }

    return nil, errors.New("无效的token")
}
Salin selepas log masuk

3. Gunakan JWT untuk pengesahan

Dalam Beego, kami boleh menggunakan middleware untuk mengesahkan identiti pengguna, contohnya:

package controllers

import (
    "myProject/utils"
    "github.com/astaxie/beego"
    "github.com/dgrijalva/jwt-go"
)

type BaseController struct {
    beego.Controller
}

type CustomClaims struct {
    UserID   string `json:"userId"`
    UserName string `json:"userName"`
    jwt.StandardClaims
}

func (c *BaseController) Prepare() {
    // 获取请求头中的token
    tokenString := c.Ctx.Request.Header.Get("Authorization")

    // 创建JWT实例
    jwt := utils.NewJWT()

    // 解析token,获取token中存储的用户信息
    claims, err := jwt.ParseToken(tokenString)

    if err != nil {
        c.Data["json"] = "无效的token"
        c.ServeJSON()
        return
    }

    // 验证token中的用户信息
    if claims.UserID != "123456" || claims.UserName != "test" {
        c.Data["json"] = "用户信息验证失败"
        c.ServeJSON()
        return
    }
}
Salin selepas log masuk

In In kod di atas, kami mula-mula mendapatkan token dalam pengepala permintaan, dan kemudian menghuraikan token melalui JWT untuk mendapatkan maklumat pengguna yang disimpan di dalamnya. Akhir sekali, kami mengesahkan maklumat pengguna dalam token dengan maklumat pengguna yang disimpan dalam pangkalan data kami Hanya selepas lulus pengesahan, kami boleh mengakses antara muka yang berkaitan secara normal.

3. Ringkasan

Melalui langkah di atas, kami telah berjaya menyepadukan mekanisme pengesahan JWT dan melaksanakan pengesahan identiti pengguna, kawalan kebenaran dan operasi lain dalam aplikasi Beego. Walau bagaimanapun, perlu diingatkan bahawa dalam aplikasi sebenar, kita perlu memastikan keselamatan kunci JWT, dan kita juga perlu mempertimbangkan sama ada maklumat yang disimpan dalam JWT adalah munasabah.

Atas ialah kandungan terperinci Menggunakan JWT untuk melaksanakan pengesahan dalam Beego. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melumpuhkan pengesahan penyemakan imbas peribadi dalam Safari: Panduan cara untuk iOS 17 Bagaimana untuk melumpuhkan pengesahan penyemakan imbas peribadi dalam Safari: Panduan cara untuk iOS 17 Sep 11, 2023 pm 06:37 PM

Dalam iOS 17, Apple memperkenalkan beberapa ciri privasi dan keselamatan baharu kepada sistem pengendalian mudah alihnya, salah satunya adalah keupayaan untuk memerlukan pengesahan dua langkah untuk tab penyemakan imbas peribadi dalam Safari. Begini cara ia berfungsi dan cara mematikannya. Pada iPhone atau iPad yang menjalankan iOS 17 atau iPadOS 17, jika anda mempunyai sebarang tab Penyemakan Imbas Peribadi yang dibuka di Safari dan kemudian keluar dari sesi atau apl, penyemak imbas Apple kini memerlukan pengesahan Face ID/TouchID atau kod laluan untuk mengaksesnya semula. Dalam erti kata lain, jika seseorang mendapatkan iPhone atau iPad anda semasa ia dibuka kunci, mereka masih tidak akan dapat melihatnya tanpa mengetahui kod laluan anda

Analisis penjanaan token JWT selamat dan teknologi pengesahan dalam PHP Analisis penjanaan token JWT selamat dan teknologi pengesahan dalam PHP Jul 01, 2023 pm 06:06 PM

Analisis Teknologi Penjanaan dan Pengesahan Token JWT Selamat dalam PHP Dengan pembangunan aplikasi rangkaian, pengesahan dan kebenaran pengguna menjadi semakin penting. JsonWebToken (JWT) ialah standard terbuka (RFC7519) untuk menghantar maklumat dengan selamat dalam aplikasi web. Dalam pembangunan PHP, ia telah menjadi amalan biasa untuk menggunakan token JWT untuk pengesahan dan kebenaran pengguna. Artikel ini akan memperkenalkan penjanaan token JWT selamat dan teknologi pengesahan dalam PHP. 1. Pengetahuan asas JWT dalam memahami cara menjana dan

OAuth dalam PHP: Mencipta Pelayan Kebenaran JWT OAuth dalam PHP: Mencipta Pelayan Kebenaran JWT Jul 28, 2023 pm 05:27 PM

OAuth dalam PHP: Mencipta Pelayan Kebenaran JWT Dengan peningkatan aplikasi mudah alih dan trend pemisahan bahagian hadapan dan belakang, OAuth telah menjadi bahagian yang amat diperlukan dalam aplikasi web moden. OAuth ialah protokol kebenaran yang melindungi sumber pengguna daripada capaian yang tidak dibenarkan dengan menyediakan proses dan mekanisme piawai. Dalam artikel ini, kita akan belajar cara membuat pelayan kebenaran OAuth berasaskan JWT (JSONWebTokens) menggunakan PHP. JWT ialah sejenis

Melaksanakan pengesahan pengguna menggunakan middleware dalam rangka kerja Slim Melaksanakan pengesahan pengguna menggunakan middleware dalam rangka kerja Slim Jul 29, 2023 am 10:22 AM

Melaksanakan pengesahan pengguna menggunakan perisian tengah dalam rangka kerja Slim Dengan pembangunan aplikasi web, pengesahan pengguna telah menjadi ciri penting. Untuk melindungi maklumat peribadi pengguna dan data sensitif, kami memerlukan kaedah yang boleh dipercayai untuk mengesahkan identiti pengguna. Dalam artikel ini, kami akan memperkenalkan cara untuk melaksanakan pengesahan pengguna menggunakan perisian tengah rangka kerja Slim. Rangka kerja Slim ialah rangka kerja PHP ringan yang menyediakan cara yang mudah dan pantas untuk membina aplikasi web. Salah satu ciri yang berkuasa adalah bahagian tengah

Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Jan 30, 2024 am 09:08 AM

Dalam era perkembangan teknologi yang pesat hari ini, bahasa pengaturcaraan bermunculan seperti cendawan selepas hujan. Salah satu bahasa yang telah menarik perhatian ramai ialah bahasa Go, yang digemari oleh ramai pembangun kerana kesederhanaan, kecekapan, keselamatan serentak dan ciri-ciri lain. Bahasa Go terkenal dengan ekosistemnya yang kukuh dengan banyak projek sumber terbuka yang sangat baik. Artikel ini akan memperkenalkan lima projek sumber terbuka bahasa Go yang dipilih dan membawa pembaca untuk meneroka dunia projek sumber terbuka bahasa Go. KubernetesKubernetes ialah enjin orkestrasi kontena sumber terbuka untuk automatik

Pengesahan berasaskan token dengan Angular dan Node Pengesahan berasaskan token dengan Angular dan Node Sep 01, 2023 pm 02:01 PM

Pengesahan adalah salah satu bahagian terpenting dalam mana-mana aplikasi web. Tutorial ini membincangkan sistem pengesahan berasaskan token dan cara ia berbeza daripada sistem log masuk tradisional. Pada penghujung tutorial ini, anda akan melihat demo berfungsi sepenuhnya yang ditulis dalam Angular dan Node.js. Sistem Pengesahan Tradisional Sebelum beralih kepada sistem pengesahan berasaskan token, mari kita lihat sistem pengesahan tradisional. Pengguna memberikan nama pengguna dan kata laluan mereka dalam borang log masuk dan klik Log Masuk. Selepas membuat permintaan, sahkan pengguna di bahagian belakang dengan menanyakan pangkalan data. Jika permintaan itu sah, sesi dibuat menggunakan maklumat pengguna yang diperoleh daripada pangkalan data dan maklumat sesi dikembalikan dalam pengepala respons supaya ID sesi disimpan dalam penyemak imbas. Menyediakan akses kepada aplikasi tertakluk kepada

Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego Penggunaan dan pengurusan pengeluaran menggunakan Docker dan Kubernetes dalam Beego Jun 23, 2023 am 08:58 AM

Dengan perkembangan pesat Internet, semakin banyak perusahaan telah mula memindahkan aplikasi mereka ke platform awan. Docker dan Kubernetes telah menjadi dua alat yang sangat popular dan berkuasa untuk penggunaan dan pengurusan aplikasi pada platform awan. Beego ialah rangka kerja Web yang dibangunkan menggunakan Golang Ia menyediakan fungsi yang kaya seperti penghalaan HTTP, lapisan MVC, pengelogan, pengurusan konfigurasi dan pengurusan Sesi. Dalam artikel ini kami akan membincangkan cara menggunakan Docker dan Kub

Bagaimana untuk melaksanakan pengesahan dan kebenaran dalam aplikasi PHP menggunakan JWT Bagaimana untuk melaksanakan pengesahan dan kebenaran dalam aplikasi PHP menggunakan JWT Aug 03, 2023 pm 10:17 PM

Cara menggunakan JWT untuk melaksanakan pengesahan dan kebenaran dalam aplikasi PHP Pengenalan: Dengan perkembangan pesat Internet, pengesahan dan kebenaran menjadi semakin penting dalam aplikasi web. JSONWebToken (JWT) ialah mekanisme pengesahan dan kebenaran popular yang digunakan secara meluas dalam aplikasi PHP. Artikel ini akan memperkenalkan cara menggunakan JWT untuk melaksanakan pengesahan dan kebenaran dalam aplikasi PHP, dan menyediakan contoh kod untuk membantu pembaca memahami penggunaan JWT dengan lebih baik. 1. Pengenalan kepada JWTJSONWebTo

See all articles