概要

NextAuth.jsを使って、ORCID・OSF(The Open Science Framework)・ GRDM(GakuNin RDM)の認証を行う方法です。

デモアプリ

ORCID

https://orcid-app.vercel.app/

OSF

https://osf-app.vercel.app/

GRDM

https://rdm-app.vercel.app/

リポジトリ

ORCID

https://github.com/nakamura196/orcid_app

以下がオプションの記述例です。

https://github.com/nakamura196/orcid_app/blob/main/src/app/api/auth/[…nextauth]/authOptions.js

e}x;pp]c}or,a,ro{}la}a}tv,ls,s,iintcca}tu}p}byssryi}rcddayllu,os,r,aneeenfeoe:mpiitup}keua}or}ccsstctttnreeeehra,errs,fe;kssu(oouss"::nnolrsrrnilyc}ritinessiirjakkrt:ottr:acee:n:no)eludam:eoonwceenr""ISimosdfcnh};ter:masnntcnna[cOodez"sppi"o"se,u(nei{s..s(o..tuiRa:cah:eorh:hrtaAArpp:liaue{uaootdCurtt:netteducnr{r:ocssncrkh"Itpeit{sct{tqretcoopncesttcceO,Dhrtop"etppuerheaffrp(erio)einp""o:ns/__ssessopwiior{s.oksd;t,,c::atu::s:rtallfosine{siep/uyr//t=i:ieeifsTd;nT=osr{/tpi//({zt)[lieo,onsoohe:op{aa""elsk=kas.cre:ruwtar{o.eseaeceecnpcbtaiperp.intcnc=nsit"ri.oiopscepoocovsdicodoktnl.iren=ko=u{...coc.re:ijdsr,eunOeoadeocnfcs-ostnnatRnrtesrise`aoinoto.tc.Cvge"sgdtBtnd?nokocoI./",./.}cei(e.?ker}orDOo,eoo)hao)nn.enc)uc_Ranar(rn;taen.iniCCuvug{`e/immad{tdLIt.t/hrjfea}c;.;IDhNhvtsi?i)caE_/E/3t$oe.lecNCaXt.p{nr[s{scTLuTo0st"""?se_ItAk/:o,]g.TOsIEhUe[/k.ieoRsDNoTnO/epvmkC_,TrH"RpnaeaeIt_i_,CustninDoSzUIb.h-l;kEeRD.a,n?IeC"L]oca.DnR,"rcm[;E+,cee0Tiss],"dsO"?/._R].aotC?eproI.migkDva//eaiavnllu3}u,t.`Ieh0,D//+c$a{"ltlo"bkae+cnksp/.rooorrfcciiildde"}.,`p,er{son?.name?.["family-name"]?.value,

OSF

https://github.com/nakamura196/osf-app

以下がオプションの記述例です。

https://github.com/nakamura196/osf-app/blob/main/src/app/api/auth/[…nextauth]/authOptions.js

e}x;pp]c}or,aro{}la}a}tv,ls,s,iintcca}tu}p}bysssryi}i}rcddayllu,os,raneeeenffeoe:mpiitup}keua}or}ccssstcttttnreeeehra,errs,fe;ksssu(oo(ouss"::nnolrsrrnilyc}ritinessiiirjakkukrt:ottr:acee:n:no)eludam:eooonwceesens""ISimosdfcnh};ter:masnnntcnnena[fOodez"sppi"o"se,u(nei{s...s(o..r.tu"pa:cah:eorh:hrtaAArpp:liarue{uar)iot,eurtt:netteducnr{r:ocessncedkhntpeit{sct{tqretcoopncfesttcf{eOhrtoppetppuerheaffrp(errio)er=npS"o:nsr__ssessopwiior{se.okse;tc,c::otu::s:rtallfossine{ssuiiep/cyr//t=i:ieeifsThd;nThsoesr{/epi//({zt).lieoT,oTennsoase:aa{aa"delsko=korsc.ccs:cpwtar{a.esekaek.eeec.`citaipetd.inetcnei=nsoe"$o.oiopsaadonocndFvsunc{uoktnl..tan=ko=;{r..nvopnse:ijiat,=eu=aOet.drtfnfcsd.atnnamSnsOeos.se`ao,a.tot.tcaeFv.S"c.itBtntaokoi,ccw_.oF,eoo}cei(ttkekdocoCOs_ss/)hao)rtene;uuorLSfSsfv(rn;irn.nsnukIF.C..2{"e/Gbia.etn"E_iOei/hrjaub}crr.t,NCoPnoutsktu)cea.ITL/Ev/st$ouetefo}crD_Io.oep{nNse{srs)ceIEaNarst"i.ssefefDNuEus:o,nf.Ts{sr,TtXt//kueohIse_h"Thm/eRlmkTD_sS2oA2eanDlaeothE/sU//psM_inko_CafTt"i.nl;ektRu.Ho,.aa,neoEtf_kocm;nkThuUesce;e,olRnfe,nrlL".s;i_},iszr/o_Ieea/tD"apvoaa,di2ktt//ettoaunrrsus}iifte`bb.hr,uuf/sttuc/eelamsslle_l/wb"ra,icfetk{ume/la"oli,s_lfn`a,meURI

GRDM

https://github.com/nakamura196/rdm_app

以下がオプションの記述例です。

https://github.com/nakamura196/rdm_app/blob/main/src/app/api/auth/[…nextauth]/authOptions.js

e}x;pp]c}r,a,ro{}la}a}tdv,ls,s,eiintcca}t}up}byss}ryi}i}rcbddayllu,o,sr,anee;enffeoue:mpiitup}kua}eoi}c}rccssitcttttngreeeehra,ersrffo;ekssdu(oo(ous:s"::nnolrcsrrnlyc}c}ci}r}iitninetssii.:rjakkukrt:gttr:alcee::no)o)ofenl(hsdamu:eoosnwceesenta""ISimiosdcncccgr;nmh}b;ntttfe!rt:marsnnettcnnenar[kGodez"seppi{"slloresee,os(huoo(poein{s..sos(o..r.tuuuaa:cah:neorhrtiidadtta"dt!rrk:prwup:liauske{uar)iotenkurttt:neteeeenihdCyronerosr:uocsiesncedkh,iutpeit{_sctqbnn:trroeo,jewn"ofneopsnceonsttcf{eOnNhrtopipetpuott_eedrnss{shfierfrpe(ern.io)er=np"i"o:nsdr__sed__ctcs:sto.n:tilwiorr{s.iokse;t,n,c:::otu:syisoyt:enoetle=lfos=udne{ssuiep/cyr/tdenp_="nkwjpe.EeifsTs,;nThsonRsr{/pepi/(=:cteuP{t=)ss)dr{.lieo{e,oTeneDsoarse:acre:raO-Eo:ardelskrkorsxM.ccos:conpexiwSTa{rn/{toa.ese,aek.t"eecc.`cnertt":aTywr/artd.incnei=-,nsoee"$otwo:.ai"paoa(aadocndavsusnc{uecpu`t,eirp".tan=o=;{u..nsvopnxUepat$"t(iIiat,u=tGet..drttRsrrh{f:`.nd.atnahAnseOeos)LsoaoperTr!va.totcaKv.nS"c.S.cmrrt"eodpataokI,ccU.rvF,er{eeesiocaskmrlttkeDocNGd._sdans.zchp.e.oirtenuuoIAmGSsmrvscae(pjnnfd"irn.snuNK.AC..c..ots"lsiiubiaetn_UnKOenhGedishiorilunub}cr.tCNiUPniPAneo.tcne.esktu)ca.LIiNEviaKv,neta(qa.enete}crIN.I..rU._npt)ucdrose{s)ceE_aNNaaNGcvsi;e.aw.ssefNCc_EcmIAo.:osjtpnf.T{srTL.CX.sNKdN/ntpar"ueose_IjL"Tj(_UeE///.o,lmk_sIEpIoAp{CN"XaxfvaflaethIDN/EsU/LI,Tc-Pa2ti_ino_D,ToNfToINAcwai/tlnl;kt_aT.HaE_UowrlureaeoSu_f_uNCTuwsesiHmnkEtIuUtTLHn-edebsae;eChDlRh_I_tf:rutnnR2,lL2IEUsotstrd";E/_}/DNR.rh$/eulNTar/t,TLrme{msceo,ueao_}d-re)t"tapkS/mure/umNEhdieEa.res"{riomo/nCpnls.,esaroa"Riieps"sNiisu,E/inot)ialzftTa.cna;nm"e.h,uaostge,"f/tcdeu",ucch.esI,lal/jdbTDcllicp"oel_lea/,dxgiwbnloytreratla}anic_buo`cttkiatn)e_e/dchc;fi"gk2eud,a//lkgtluaoynkkiuennn`i",n,`,{URI

まとめ

改善すべき点などがあるかと思いますが、参考になりましたら幸いです。