1. 企业内部应用免登录,后端如何检验用户登录了自家应用?

个人思路:用户进入企业内部应用小程序后,给后端发一个请求,告知后端,后端给小程序发放认证。

  1. var authCode = '';
  2. dd.getAuthCode({
  3. success:function(res){
  4. /*{
  5. authCode: 'hYLK98jkf0m' //string authCode
  6. }*/
  7. console.log("authCode,"+ res.authCode);
  8. // fetch('http://xh9093.vaiwan.com:8082/test/login', )
  9. authCode = res.authCode;
  10. // dd.httpRequest({
  11. // url: 'http://localhost:9093/test/login?code='+authCode,
  12. // method: 'get',
  13. // // data: {
  14. // // code: authCode,
  15. // // },
  16. // // dataType: 'json',
  17. // // contentType: 'application/json',
  18. // success: function(res) {
  19. // dd.alert({content: 'success', r: res});
  20. // },
  21. // fail: function(res) {
  22. // dd.alert({content: 'fail', r: res});
  23. // }
  24. // });
  25. // 获取token
  26. var access_token = '';
  27. dd.httpRequest({
  28. url: 'https://oapi.dingtalk.com/gettoken?appkey=dingwgjdrty4gz3e2fm9&appsecret=vDLz32E1-eic9N2QQd1LU65JYISertYG66UOhfHmYsTTBy-cZ_qgwPrzWYRu2PCM',
  29. success: function(res) {
  30. console.log('access_token', res);
  31. dd.alert({content: res.data.access_token});
  32. access_token = res.data.access_token;
  33. // 获取用户信息
  34. dd.httpRequest({
  35. url: 'https://oapi.dingtalk.com/user/getuserinfo?access_token='+access_token+"&code="+authCode,
  36. success: function(res1) {
  37. console.log('userinfo', res1);
  38. // dd.alert(res1.data.userid);
  39. var userid = res1.data.userid;
  40. // 获取 unionid
  41. dd.httpRequest({
  42. url: 'https://oapi.dingtalk.com/topapi/v2/user/get?access_token='+access_token,
  43. method: 'POST',
  44. data : {
  45. userid: userid,
  46. },
  47. success: function(res1) {
  48. console.log('get unionid', res1);
  49. // dd.alert(res1.data.userid);
  50. var unionid = res1.data.result.unionid;
  51. console.log('unionid', unionid)
  52. }
  53. });
  54. }
  55. });
  56. }
  57. });
  58. },
  59. fail:function(err){
  60. }
  61. });

感觉上,钉钉应该有接口可验证用户是否是企业的人员,以及登录的应用,可是是哪个呢?