summaryrefslogtreecommitdiffstats
path: root/packages/meteor-accounts-cas/README.md
blob: 3e246c4f15e8a812acbdcb166e9c102949e2464a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
This is a merged repository of useful forks of: atoy40:accounts-cas
===================
([(https://atmospherejs.com/atoy40/accounts-cas](https://atmospherejs.com/atoy40/accounts-cas))

## Essential improvements by ppoulard to atoy40 and xaionaro versions

* Added support of CAS attributes

With this plugin, you can pick CAS attributes : https://github.com/joshchan/node-cas/wiki/CAS-Attributes

Moved to Wekan GitHub org from from https://github.com/ppoulard/meteor-accounts-cas

## Install

```
cd ~site
mkdir packages
cd packages
git clone https://github.com/wekan/meteor-accounts-cas
cd ~site
meteor add wekan:accounts-cas
```

## Usage

Put CAS settings in Meteor.settings (for example using METEOR_SETTINGS env or --settings) like so:

If casVersion is not defined, it will assume you use CAS 1.0. (note by xaionaro: option `casVersion` seems to be just ignored in the code, ATM).

Server side settings:

```
Meteor.settings = {
    "cas": {
        "baseUrl": "https://cas.example.com/cas",
        "autoClose": true,
        "validateUrl":"https://cas.example.com/cas/p3/serviceValidate",
        "casVersion": 3.0,
        "attributes": {
            "debug" : true
        }
    },
}
```

CAS `attributes` settings :

* `attributes`: by default `{}` : all default values below will apply
* *  `debug` : by default `false` ; `true` will print to the server console the CAS attribute names to map, the CAS attributes values retrieved, if necessary the new user account created, and finally the user to use
* *  `id` : by default, the CAS user is used for the user account, but you can specified another CAS attribute
* *  `firstname` : by default `cas:givenName` ; but you can use your own CAS attribute
* *  `lastname` : by default `cas:sn` (respectively) ; but you can use your own CAS attribute
* *  `fullname` : by default unused, but if you specify your own CAS attribute, it will be used instead of the `firstname` + `lastname`
* *  `mail` : by default `cas:mail`

Client side settings:

```
Meteor.settings = {
	"public": {
		"cas": {
			"loginUrl": "https://cas.example.com/login",
			"serviceParam": "service",
			"popupWidth": 810,
			"popupHeight": 610,
			"popup": true,
		}
	}
}
```

`proxyUrl` is not required. Setup [ROOT_URL](http://docs.meteor.com/api/core.html#Meteor-absoluteUrl) environment variable instead.

Then, to start authentication, you have to call the following method from the client (for example in a click handler) :

```
Meteor.loginWithCas([callback]);
```

It must open a popup containing you CAS login form or redirect to the CAS login form (depending on "popup" setting).

If popup is disabled (== false), then it's required to execute `Meteor.initCas([callback])` in `Meteor.startup` of the client side. ATM, `Meteor.initCas()` completes authentication.

## Examples

* [https://devel.mephi.ru/dyokunev/start-mephi-ru](https://devel.mephi.ru/dyokunev/start-mephi-ru)