beegoutil

package module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2025 License: MIT Imports: 12 Imported by: 0

README

Beego OAuth 2.0 Demo

Build Status Lint Status Go Report Card Docs License

A Beego example app to demo OAuth 2.0 using Google and Facebook.

The following are used in this example app:

Usage

App Hostname / OAuth 2.0 Redirect URI

Decide on the hostname for your app which will be used in the OAuth 2.0 URI.

The redirect URI is oauth2callback. For example, if your app URL is https://example.com, your redirect URI will be https://example.com/oauth2callback.

If you do not have an Internet accessible hostname, you can use ngrok for testing.

Configure Google and Facebook

Login to the Google and Facebbook developer consoles to configure your apps with your OAuth 2.0 rediect URIs. During this process, you will get your OAuth 2.0 client ID and client secrets for Google and Facebook.

Install & Configure App
  1. Clone the repo
  2. Install the dependencies
  3. Set up your app.conf file.
  4. Run the app

You can do the above with the following steps. See the next section for more detailed information on the configuration file.

$ git clone https://github.com/grokify/beego-oauth2-demo
$ go get ./...
$ cd beego-oauth2-demo/conf
$ cp app.conf.sample app.conf
$ vim app.conf
$ bee run
Configuration File

This is a basic Beego config file with additional properties. Specifically, it has the following 3 properties:

Property Description
oauth2redirecturi This app's OAuth2 redirect URI which has the path /oauth2callback, e.g. https://example.com/oauth2callback
oauth2configgoogle The Google Developers Console client_credentials.json file information. Nagivate to "API Manager" > "Credentials" > "OAuth 2.0 client IDs" > > "Download JSON". This is read directly by OAuth2's google.ConfigFromJSON() function.
oauth2configfacebook This uses the format used by oauth2.Config

References

Google Auth Credentials

App credentials are created an managed using the Google Developers Console. To create an app, do the following:

  1. Navigate to Google Developers Console
  2. Click "API Manager"
  3. Create / Select a Project
  4. Click "Credentials"
  5. Create / Select OAuth 2.0 client IDs for "Web application"
  6. Click "Download JSON"

Documentation

Index

Constants

View Source
const (
	BeegoOauth2ProvidersCfgVar    string = "oauth2providers"
	BeegoOauth2ConfigCfgVarPrefix string = "oauth2config"
)
View Source
const (
	BeegoSessionCookieNameCfgVar  string = "sessioncookiename"
	BeegoSessionCookieNameDefault string = "gosessionid"
	BeegoSessionProviderCfgVar    string = "sessionprovidername"
	BeegoSessionProviderDefault   string = "memory"
)

Variables

View Source
var (
	SesUserInfo       = "user"
	SesUserIsLoggedIn = "userIsLoggedIn"
	SesUserTokenSet   = "userTokenSet"
)

Functions

func InitOAuth2Config

func InitOAuth2Config(o2ConfigSet *multiservice.ConfigMoreSet) error

func InitSession

func InitSession(sessionProvider string, sessionConfig *session.ManagerConfig, log *logs.BeeLogger)

InitSession creates a starts session management https://beego.me/docs/module/session.md

func LogErrorIf added in v0.4.0

func LogErrorIf(err error, log *logs.BeeLogger)

func NewLoggerAdapterConsole

func NewLoggerAdapterConsole() *logs.BeeLogger

func ProcErrPg

func ProcErrPg(err error) error

ProcErrPg removes the "no LastInsertId available" error. See more here: https://github.com/beego/beego/issues/3070 .

func WriteHTML added in v0.3.6

func WriteHTML(rw http.ResponseWriter, html []byte) (int, error)

Types

type SessionUserInfo added in v0.2.7

type SessionUserInfo struct {
	User       *scim.User
	IsLoggedIn bool
	TokenSet   tokens.TokenSet
}

func NewSessionUserInfo added in v0.2.7

func NewSessionUserInfo() *SessionUserInfo

func (*SessionUserInfo) ErrorLogIf added in v0.4.0

func (su *SessionUserInfo) ErrorLogIf(log *logs.BeeLogger, err error)

func (*SessionUserInfo) Load added in v0.2.7

func (su *SessionUserInfo) Load(c *web.Controller)

func (*SessionUserInfo) Logout added in v0.2.7

func (su *SessionUserInfo) Logout(c *web.Controller, log *logs.BeeLogger)

func (*SessionUserInfo) Save added in v0.2.7

func (su *SessionUserInfo) Save(c *web.Controller, log *logs.BeeLogger)

Directories

Path Synopsis
examples
conf_reader command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL