单点登录

为了让对接应用能够直接使用希悦的帐号体系,减少用户多次登录的烦恼,希悦开放平台提供单点登录支持,目前我们支持 OAuth 2 的 implicit grant 授权流程。具体流程如下:

1. 跳转到授权地址

我们的授权地址是:

https://passport.seiue.com/authorize?response_type=token&client_id=?&school_id=?&redirect_uri=?

其中,client_id 为希悦分配的应用 ID,是一个字符串;redirect_uri 为登录成功后的跳转地址,这个地址由应用提供。

2. 登录成功后跳转

用户在希悦成功登录后,系统会自动跳转到 redirect_uri, 并携带相关参数,示例如下:

http://targeturl#access_token=?&token_type=bearer&expires_in=3599

其中 access_token 为获取用户信息的token,expires_in 为 token 有效时间,单位为秒。

NOTES
因为,使用 url hash 的方式传递 access_token,服务器端无法直接获取到 access_token, 这里可以在前端通过 js 获取,然后再将 access_token 发送到服务器端,以便下一步的处理。

3、根据 access_token 获取用户信息

拿到 access_token 之后,就可以通过 access_token 获取当前登录用户的信息。curl 示例如下:

curl 'https://open.seiue.com/api/v1/oauth' \
-X GET  \
-H 'X-School-Id: ?' \
-H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImVlOGE1OWEzYmQ4MmU1NzU0N2RhZDc1MmU4MmRlZGQxMGQ2MTE3N2RjMDVjYjYzZjUzYTcyMjM1N2Y3YjM2MDRlM2MwNGJhMGIwMWYzZTEyIn0.eyJhdWQiOiIyIiwianRpIjoiZWU4YTU5YTNiZDgyZTU3NTQ3ZGFkNzUyZTgyZGVkZDEwZDYxMTc3ZGMwNWNiNjNmNTNhNzIyMzU3ZjdiMzYwNGUzYzA0YmEwYjAxZjNlMTIiLCJpYXQiOjE0ODYwMzk3MDIsIm5iZiI6MTQ4NjAzOTcwMiwiZXhwIjoxNDg2MTI2MTAyLCJzdWIiOiIyIiwic2NvcGVzIjpbXX0.XC4GVqFLa6hLjK9Rp73hS2RBfInVR1zqFND7MNVS66nFjqi034yX-IUpUJgiCpFW0UnLbS4BDNDic3TGaaX_MOxXiW9lGNNg5GOuj54H7vigbSsOTNsAhzzGYqWlvMvz-VJAcG43H2AbL3dQN2XpT7XGphYLp8YkgXTFoghF0SM'

4. 完成登录

拿到用户信息之后,应用就可以和自己的数据库进行比对,完成登录,支持单点登录流程完毕。

results matching ""

    No results matching ""