ddlogin-react
ddlogin for react
Installation
$ npm install ddlogin-react --save
Example Usage
Component { superprops thisstate = // 测试 appid APPID: 'dingoatk9pnaxugtzngq9l' // 跳转当前页面 REDIRECT_URI: windowlocationhref } { // 触发回调时处理回调链接,举例:如果查询字符串中含有state,且为dinglogin(可自行设置), // 则触发扫描登录的相应处理方法,比如登录。 const state = thispropslocation && thispropslocationquerystate; ifstate === 'dinglogin' const code = thispropslocationquerycode; // todo.... // ex: dispatch(scanLogin({tmp_auth_code: code})); } { // 监听消息处理方法 const handleMessage = { // 获取loginTempCode const loginTempCode = eventdata; // 获取消息来源 const origin = eventorigin; // 拼接 url const url = `https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=&response_type=code&scope=snsapi_login&state=dinglogin&redirect_uri=&loginTmpCode=` // 如果来源为https://login.dingtalk.com,则在当前窗口打开回调链接 if origin === 'https://login.dingtalk.com' window }; // 监听iframe的消息 if typeof windowaddEventListener != 'undefined' window; else if typeof windowattachEvent != 'undefined' window; } { const options = id: "login-container" goto: `https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=&response_type=code&scope=snsapi_login&state=dinglogin&redirect_uri=` width: '350px' height: '350px' return <div id="login"> <h2>扫描登录</h2> <DDlogin options=options/> </div> }
Other
See more detail from Dingtalk Development Site
Licence
MIT License