Git Product home page Git Product logo

php_cas_server's Introduction

PHP CAS Server

PHP CAS Server is a PHP implementation of CAS Server Protocol based on Laravel.

中文文档

Features

  • CAS protocol v1/v2/v3 (proxy is supported now!).
  • User management, including adding/editing/searching users, enable/disable users, set/unset as administrator.
  • Service management, including adding/editing/searching services, enable/disable services.
  • I18n, support English and Chinese out of box, you can add language as your need.
  • Customize login methods, support email + password by default, you can add custom login methods by plugins. You can also disable email login by settings.

Requirements

  • PHP >= 5.5.9

Installation

By composer (Recommend)

  1. composer create-project leo108/php_cas_server php_cas_server dev-master
  2. npm install or yarn
  3. gulp

By release tarballs

Download Link

Configuration

If you install by tarball, you have to copy .env.example to .env, and then run php artisan key:generate

All settings are in .env file.

Basic

Field Default Value Description
APP_ENV local running environment,use local if in development, use production in production
APP_KEY random value left as is
APP_DEBUG true enable debug mode, set to false to disable
APP_LOG_LEVEL debug log level, debug/info/notice/warning/error/critical/alert/emergency
APP_URL http://localhost your app's url, needs http(s):// at the beginning
APP_LOCALE en language, support en and cn out of box

Database

You have to set all fields that begin with DB_, then run php artisan migrate to initial database schema.

CAS Server

Field Default Value Description
CAS_LOCK_TIMEOUT 5000 CAS ticket locking time, in milliseconds
CAS_TICKET_EXPIRE 300 CAS ticket expire time, in seconds
CAS_TICKET_LEN 32 CAS ticket length, it's recommend at least 32
CAS_PROXY_GRANTING_TICKET_EXPIRE 7200 CAS proxy-granting ticket expire time, in seconds
CAS_PROXY_GRANTING_TICKET_LEN 64 CAS proxy-granting ticket length, it's recommend at least 64
CAS_PROXY_GRANTING_TICKET_IOU_LEN 64 CAS proxy-granting ticket IOU length, it's recommend at least 64
CAS_VERIFY_SSL true Whether to check ssl when calling pgt url
CAS_SERVER_ALLOW_RESET_PWD true allow user reset password by email
CAS_SERVER_ALLOW_REGISTER true allow user register
CAS_SERVER_DISABLE_PASSWORD_LOGIN false disable password login
CAS_SERVER_NAME Central Authentication Service The site name of your CAS Server

Setup behind reverse proxy

Field Default Value Description
TRUSTED_PROXIES 127.0.0.1 The IP of reserve proxy servers, separated by comma(,), you can specific IP or use s subnet such as 127.0.0.1 and 127.0.0.1/24, configurations below take effect only when visiting IP in this list
TRUSTED_HEADER_CLIENT_IP X_FORWARDED_FOR User's real IP is stored in this request header
TRUSTED_HEADER_CLIENT_HOST X_FORWARDED_HOST The host user visited is stored in this request header
TRUSTED_HEADER_CLIENT_PROTO X_FORWARDED_PROTO The http protocol user used is stored in this request header
TRUSTED_HEADER_CLIENT_PORT X_FORWARDED_PORT The port user visited is stored in this request header

Initial database and create administrator

Execute php artisan migrate at the root directory of this project to initial database.

Execute php artisan make:admin --password=yourpassword to create an administrator account.

License

MIT.

php_cas_server's People

Contributors

leo108 avatar phy25 avatar satouriko avatar

Stargazers

Lungoupao Khongsai avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.