Search⌘ K

Handling OAuth 2.0 Redirects

Learn to handle Facebook OAuth callbacks in Beego, covering authorization, token exchange, and user session management.

Process

Handling the OAuth redirect callback is a critical part of implementing OAuth authentication in an application. This lesson demonstrates handling the OAuth 2.0 callback from Facebook in a Beego application.

It involves the the following steps:

  1. Receiving the authorization code

  2. Exchanging the authorization code for a token

  3. Using this token to fetch user details

  4. Creating a session to keep the user logged in

Setting up the route

Let’s set up a route to handle the callback URL. We assume that the callback URL is set to /auth/facebook.

Go (1.18.2)
package routers
import (
"beego_notes/controllers"
beego "github.com/beego/beego/v2/server/web"
)
func init() {
beego.Router("/", &controllers.MainController{})
beego.Router("/notes", &controllers.NotesController{}, "get:NotesIndex")
beego.Router("/notes/new", &controllers.NotesController{}, "get:NotesNewForm")
beego.Router("/notes", &controllers.NotesController{}, "post:NotesCreate")
beego.Router("/notes/:id([0-9]+)", &controllers.NotesController{}, "get:NotesShow")
beego.Router("/notes/edit/:id([0-9]+)", &controllers.NotesController{}, "get:NotesEditPage")
beego.Router("/notes/:id", &controllers.NotesController{}, "post:NotesUpdate")
beego.Router("/notes/:id", &controllers.NotesController{}, "delete:NotesDelete")
beego.Router("/signup", &controllers.SessionsController{}, "get:SignupPage")
beego.Router("/login", &controllers.SessionsController{}, "get:LoginPage")
beego.Router("/signup", &controllers.SessionsController{}, "post:Signup")
beego.Router("/login", &controllers.SessionsController{}, "post:Login")
beego.Router("/logout", &controllers.SessionsController{}, "post:Logout")
beego.Router("/auth/facebook", &controllers.OauthController{}, "get:FacebookAuth")
}

Here, we added a new Beego router:

  • Line 26: This line routes the GET /auth/facebook API to the FacebookAuth() method of the ...