-
Notifications
You must be signed in to change notification settings - Fork 6
/
example.lisp
66 lines (60 loc) · 3.16 KB
/
example.lisp
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
(ql:quickload '("cl-who" "restas" "saluto"))
(restas:define-module #:restas.test-saluto
(:use #:cl))
(in-package #:restas.test-saluto)
(defvar *users* (make-hash-table :test #'equal))
(restas:mount-module saluto (#:saluto)
(:url "auth/")
(:inherit-parent-context t)
(saluto:*providers* (list
(make-instance 'saluto:oauth2-google.com
:name "google.com"
:app-id "845600361011.apps.googleusercontent.com"
:app-private-key "G90eET_kGV6kTLYyrhTvqBP3")
(make-instance 'saluto:oauth2-github.com
:name "github.com"
:app-id "ab844c69808d50d44904"
:app-private-key "8c09f10e3a8991acbcfc3b7f6b81f647a785c4c6")
(make-instance 'saluto:oauth2-mail.ru
:name "mail.ru"
:app-id "712129"
:app-private-key "eee171fb3b5d65a9d8dfb4e55659719e")
(make-instance 'saluto:oauth2-facebook.com
:name "facebook.com"
:app-id "390129604417832"
:app-private-key "52f17dfdecdcec61c5806f937a8ae28d")
(make-instance 'saluto:oauth2-vk.com
:name "vk.com"
:app-id "3958122"
:app-private-key "pDO8PPhlfKLDL3gGryjC")))
(saluto:*store-userinfo-fun*
(lambda (info)
(setf (gethash hunchentoot:*session* *users*) info)))
(saluto:*logged-in-p-fun*
(lambda ()
(gethash hunchentoot:*session* *users* nil))))
(restas:define-route main ("" :method :get)
(who:with-html-output-to-string (out)
(:html
(:head (:title "Testing saluto"))
(:body
(:h1 "Testing saluto")
(if (gethash hunchentoot:*session* *users* nil)
(let ((slots (gethash hunchentoot:*session* *users*)))
(who:htm
(:div (:img :src (getf slots :avatar) :style "float: left; padding-right: 10px;")
(:p (who:esc (format nil "~a ~a" (getf slots :last-name) (getf slots :first-name))))
(:p (:a :href (restas:genurl 'saluto.logout-route) "Logout")))))
(who:htm
(:p (:a :href (restas:genurl 'saluto.login-with :provider "facebook.com")
"Login with FACEBOOK.COM"))
(:p (:a :href (restas:genurl 'saluto.login-with :provider "github.com")
"Login with GITHUB.COM"))
(:p (:a :href (restas:genurl 'saluto.login-with :provider "mail.ru")
"Login with MAIL.RU"))
(:p (:a :href (restas:genurl 'saluto.login-with :provider "vk.com")
"Login with VK.COM"))
(:p (:a :href (restas:genurl 'saluto.login-with :provider "google.com")
"Login with GOOGLE.COM"))
(:p "Not logged in")))))))
(restas:start '#:restas.test-saluto :port 8080)